mirror of
https://github.com/boostorg/multi_index.git
synced 2025-05-11 05:14:05 +00:00
parent
55723474d2
commit
3e9d0232d2
@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2003-2008 Joaquin M Lopez Munoz.
|
/* Copyright 2003-2011 Joaquin M Lopez Munoz.
|
||||||
* Distributed under the Boost Software License, Version 1.0.
|
* Distributed under the Boost Software License, Version 1.0.
|
||||||
* (See accompanying file LICENSE_1_0.txt or copy at
|
* (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
* http://www.boost.org/LICENSE_1_0.txt)
|
* http://www.boost.org/LICENSE_1_0.txt)
|
||||||
@ -13,6 +13,8 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <boost/detail/no_exceptions_support.hpp>
|
||||||
|
|
||||||
namespace boost{
|
namespace boost{
|
||||||
|
|
||||||
namespace multi_index{
|
namespace multi_index{
|
||||||
@ -24,12 +26,10 @@ namespace detail{
|
|||||||
* ScopeGuard.h as defined in:
|
* ScopeGuard.h as defined in:
|
||||||
* Alexandrescu, A., Marginean, P.:"Generic<Programming>: Change the Way You
|
* Alexandrescu, A., Marginean, P.:"Generic<Programming>: Change the Way You
|
||||||
* Write Exception-Safe Code - Forever", C/C++ Users Jornal, Dec 2000,
|
* Write Exception-Safe Code - Forever", C/C++ Users Jornal, Dec 2000,
|
||||||
* http://www.cuj.com/documents/s=8000/cujcexp1812alexandr/
|
* http://www.drdobbs.com/184403758
|
||||||
* with the following modifications:
|
* with the following modifications:
|
||||||
* - General pretty formatting (pretty to my taste at least.)
|
* - General pretty formatting (pretty to my taste at least.)
|
||||||
* - Naming style changed to standard C++ library requirements.
|
* - Naming style changed to standard C++ library requirements.
|
||||||
* - safe_execute does not feature a try-catch protection, so we can
|
|
||||||
* use this even if BOOST_NO_EXCEPTIONS is defined.
|
|
||||||
* - Added scope_guard_impl4 and obj_scope_guard_impl3, (Boost.MultiIndex
|
* - Added scope_guard_impl4 and obj_scope_guard_impl3, (Boost.MultiIndex
|
||||||
* needs them). A better design would provide guards for many more
|
* needs them). A better design would provide guards for many more
|
||||||
* arguments through the Boost Preprocessor Library.
|
* arguments through the Boost Preprocessor Library.
|
||||||
@ -65,7 +65,13 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
template<typename J>
|
template<typename J>
|
||||||
static void safe_execute(J& j){if(!j.dismissed_)j.execute();}
|
static void safe_execute(J& j){
|
||||||
|
BOOST_TRY{
|
||||||
|
if(!j.dismissed_)j.execute();
|
||||||
|
}
|
||||||
|
BOOST_CATCH(...){}
|
||||||
|
BOOST_CATCH_END
|
||||||
|
}
|
||||||
|
|
||||||
mutable bool dismissed_;
|
mutable bool dismissed_;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user