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