1 //Copyright (c) 2006-2013 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 UUID_81522C0EB56511DFAB613DB0DFD72085
7 #define UUID_81522C0EB56511DFAB613DB0DFD72085
8 #if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
9 #pragma GCC system_header
10 #endif
11 #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
12 #pragma warning(push,1)
13 #endif
14 
15 #ifdef BOOST_NO_EXCEPTIONS
16 #    error This header requires exception handling to be enabled.
17 #endif
18 
19 namespace
20 boost
21     {
22     namespace
23     exception_detail
24         {
25         class clone_base;
26 
27 #ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR
28         int clone_current_exception_non_intrusive( clone_base const * & cloned );
29 #endif
30 
31         namespace
32         clone_current_exception_result
33             {
34             int const success=0;
35             int const bad_alloc=1;
36             int const bad_exception=2;
37             int const not_supported=3;
38             }
39 
40         inline
41         int
clone_current_exception(clone_base const * & cloned)42         clone_current_exception( clone_base const * & cloned )
43             {
44 #ifdef BOOST_ENABLE_NON_INTRUSIVE_EXCEPTION_PTR
45             return clone_current_exception_non_intrusive(cloned);
46 #else
47             return clone_current_exception_result::not_supported;
48 #endif
49             }
50         }
51     }
52 
53 #if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
54 #pragma warning(pop)
55 #endif
56 #endif
57