1//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
2
3//Distributed under the Boost Software License, Version 1.0. (See accompanying
4//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6#ifndef BOOST_EXCEPTION_7E83C166200811DE885E826156D89593
7#define BOOST_EXCEPTION_7E83C166200811DE885E826156D89593
8
9#ifndef BOOST_EXCEPTION_ENABLE_WARNINGS
10#if __GNUC__*100+__GNUC_MINOR__>301
11#pragma GCC system_header
12#endif
13#ifdef __clang__
14#pragma clang system_header
15#endif
16#ifdef _MSC_VER
17#pragma warning(push,1)
18#endif
19#endif
20
21namespace
22boost
23 {
24 template <class E>
25 inline
26 E *
27 current_exception_cast()
28 {
29 try
30 {
31 throw;
32 }
33 catch(
34 E & e )
35 {
36 return &e;
37 }
38 catch(
39 ...)
40 {
41 return 0;
42 }
43 }
44 }
45
46#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
47#pragma warning(pop)
48#endif
49#endif
50

source code of include/boost/exception/current_exception_cast.hpp