Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
scope_exit.hpp File Reference
Include dependency graph for scope_exit.hpp:

Classes

struct  boost::scope_exit::detail::declared< Dummy >
 
struct  boost::scope_exit::detail::undeclared
 
struct  boost::scope_exit::detail::resolve< int >
 
struct  boost::scope_exit::detail::resolve< sizeof(declared<>)>
 
struct  boost::scope_exit::detail::resolve< sizeof(undeclared)>
 
struct  boost::scope_exit::detail::resolve< sizeof(undeclared)>::cmp1< int >
 
struct  boost::scope_exit::detail::member< T, Tag >
 
struct  boost::scope_exit::detail::member< T, ref_tag >
 
struct  boost::scope_exit::detail::member< T, val_tag >
 
struct  boost::scope_exit::detail::wrapper< T >
 
struct  boost::scope_exit::aux::guard< This >
 
struct  boost::scope_exit::aux::guard< void >
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::scope_exit
 
 boost::scope_exit::detail
 
 boost::scope_exit::aux
 

Macros

#define BOOST_SCOPE_EXIT_AUX_GCC   0
 
#define BOOST_SCOPE_EXIT_AUX_TPL_GCC_WORKAROUND_01   0
 
#define BOOST_SCOPE_EXIT_AUX_TYPEOF_THIS_MSVC_WORKAROUND_01   0
 
#define BOOST_SCOPE_EXIT_AUX_PP_LINE_COUNTER   __LINE__
 
#define this_BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_THISUNDERSCORE_IS   (1) /* unary */
 
#define void_BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_VOID_IS   (1) /* unary */
 
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_BACK_(token, checking_postfix)   BOOST_PP_IS_UNARY(BOOST_PP_CAT(token, checking_postfix))
 
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_THISUNDERSCORE_BACK(token)
 
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_VOID_BACK(token)
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_FROM_SEQ_(unused, seq)   BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(seq), BOOST_PP_SEQ_TO_TUPLE(seq))
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_HANDLE_VOID_(is_void_macro, token)
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_HANDLE_SEQ_(is_void_macro, token)
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_NEVER_(tokens)   0 /* void check always returns false */
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_(...)   BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_I_(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_I_(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15, e16, e17, e18, e19, e20, e21, e22, e23, e24, e25, e26, e27, e28, e29, e30, e31, e32, e33, e34, e35, e36, e37, e38, e39, e40, e41, e42, e43, e44, e45, e46, e47, e48, e49, e50, e51, e52, e53, e54, e55, e56, e57, e58, e59, e60, e61, e62, e63, size,...)   size
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_FROM_VARIADIC_(unused,...)
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_(is_void_macro,...)
 
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST(...)
 
#define BOOST_SCOPE_EXIT_AUX_PP_NON_VOID_LIST(...)
 
#define BOOST_SCOPE_EXIT_AUX_ARGS   boost_scope_exit_aux_args
 
#define BOOST_SCOPE_EXIT_AUX_GUARD(id)   BOOST_PP_CAT(boost_se_guard_, id)
 
#define BOOST_SCOPE_EXIT_AUX_GUARD_T(id)   BOOST_PP_CAT(boost_se_guard_t_, id)
 
#define BOOST_SCOPE_EXIT_AUX_PARAMS(id)   BOOST_PP_CAT(boost_se_params_, id)
 
#define BOOST_SCOPE_EXIT_AUX_THIS_T(id)   BOOST_PP_CAT(boost_se_this_t_, id)
 
#define BOOST_SCOPE_EXIT_AUX_THIS_CAPTURE_T(id)   BOOST_PP_CAT(boost_se_this_capture_t_, id)
 
#define BOOST_SCOPE_EXIT_DETAIL_PARAMS_T(id)   BOOST_PP_CAT(boost_se_params_t_, id)
 
#define BOOST_SCOPE_EXIT_DETAIL_TAG(id, i)   BOOST_PP_SEQ_CAT( (boost_se_tag_)(i)(_)(id) )
 
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_THIS(id)   BOOST_PP_SEQ_CAT( (boost_se_param_this_)(id) )
 
#define BOOST_SCOPE_EXIT_DETAIL_PARAM(id, i, var)   BOOST_PP_SEQ_CAT( (boost_se_param_)(i)(_)(id) )
 
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_T(id, i, var)   BOOST_PP_SEQ_CAT( (boost_se_param_t_)(i)(_)(id) )
 
#define BOOST_SCOPE_EXIT_DETAIL_CAPTURE_T(id, i, var)   BOOST_PP_SEQ_CAT( (boost_se_capture_t_)(i)(_)(id) )
 
#define BOOST_SCOPE_EXIT_AUX_WRAPPED(id, i)   BOOST_PP_SEQ_CAT( (boost_se_wrapped_t_)(i)(_)(id) )
 
#define BOOST_SCOPE_EXIT_AUX_DEREF(id, i, var)
 
#define BOOST_SCOPE_EXIT_AUX_MEMBER(r, id, i, var)
 
#define BOOST_SCOPE_EXIT_AUX_ARG_DECL(r, id_ty, i, var)
 
#define BOOST_SCOPE_EXIT_AUX_ARG(r, id, i, var)
 
#define BOOST_SCOPE_EXIT_DETAIL_TAG_DECL(r, id, i, var)   typedef void (*BOOST_SCOPE_EXIT_DETAIL_TAG(id, i))(int var);
 
#define BOOST_SCOPE_EXIT_DETAIL_TYPEDEF_TYPEOF_THIS(id, ty, new_type)
 
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG(r, id, i, var)
 
#define BOOST_SCOPE_EXIT_AUX_MEMBER_INIT(r, id, i, var)
 
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG_THIS_NAME(id)   BOOST_PP_CAT(boost_se_this_arg_, id)
 
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG_THIS(id, ty, comma01)
 
#define BOOST_SCOPE_EXIT_AUX_MEMBER_THIS_INIT(id, comma01)
 
#define BOOST_SCOPE_EXIT_AUX_PARAMS_T_CTOR(id, ty, captures, has_this)
 
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_INIT(r, id, i, var)   BOOST_PP_COMMA_IF(i) BOOST_SCOPE_EXIT_AUX_DEREF(id,i,var)
 
#define BOOST_SCOPE_EXIT_AUX_PARAMS_INIT(id, captures, has_this)
 
#define BOOST_SCOPE_EXIT_DETAIL_CAPTURE_DECL(r, id_ty, i, var)
 
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_DECL(r, id_ty, i, var)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP_CAPTURE(d, captures, this01, capture)   (BOOST_PP_LIST_APPEND(captures, (capture, BOOST_PP_NIL)), this01)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP_THIS(d, captures, this01, this_)   (captures, 1 /* has this (note, no error if multiple this_) */)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP(d, captures_this, capture)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS_ALL_OP(ref_val, traits)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS(captures)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS_ALL(captures)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS_CAPTURES(traits)   BOOST_PP_TUPLE_ELEM(2, 0, traits)
 
#define BOOST_SCOPE_EXIT_AUX_TRAITS_HAS_THIS(traits)   BOOST_PP_TUPLE_ELEM(2, 1, traits)
 
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_PARAMS(id)   BOOST_PP_CAT(boost_se_lambda_params_, id)
 
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_CAPTURE_TYPE(id)   BOOST_PP_CAT(boost_se_lambda_this_t_, id)
 
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_PARAM_TYPE(id)   BOOST_PP_CAT(boost_se_lambda_this_capture_t_, id)
 
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_TYPE(id, ty)
 
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_TYPEDEFS(id, ty, traits)
 
#define BOOST_SCOPE_EXIT_AUX_IMPL_LAMBDA(id, ty, traits)
 
#define BOOST_SCOPE_EXIT_AUX_IMPL(id, ty, traits)
 
#define BOOST_SCOPE_EXIT_ID(id,...)
 
#define BOOST_SCOPE_EXIT_ID_TPL(id,...)
 
#define BOOST_SCOPE_EXIT(...)
 
#define BOOST_SCOPE_EXIT_TPL(...)
 
#define BOOST_SCOPE_EXIT_ALL_ID(id,...)
 
#define BOOST_SCOPE_EXIT_ALL(...)
 
#define BOOST_SCOPE_EXIT_END_ID(id)   } BOOST_SCOPE_EXIT_AUX_GUARD(id)(BOOST_SCOPE_EXIT_AUX_ARGS.value);
 
#define BOOST_SCOPE_EXIT_END   BOOST_SCOPE_EXIT_END_ID(BOOST_SCOPE_EXIT_AUX_PP_LINE_COUNTER)
 

Typedefs

typedef void(* boost::scope_exit::detail::ref_tag )(int &)
 
typedef void(* boost::scope_exit::detail::val_tag )(int)
 

Functions

template<class T >
Tboost::scope_exit::detail::deref (T *p, ref_tag)
 
template<class T >
Tboost::scope_exit::detail::deref (T &r, val_tag)
 
template<class T >
wrapper< Tboost::scope_exit::detail::wrap (T &)
 

Variables

boost::scope_exit::detail::undeclared boost_scope_exit_aux_args
 

Macro Definition Documentation

#define BOOST_SCOPE_EXIT (   ...)
Value:
__VA_ARGS__)
#define BOOST_SCOPE_EXIT_AUX_PP_LINE_COUNTER
Definition: scope_exit.hpp:74
#define BOOST_SCOPE_EXIT_ID(id,...)
Definition: scope_exit.hpp:890
#define BOOST_SCOPE_EXIT_ALL (   ...)
Value:
#define BOOST_SCOPE_EXIT_AUX_PP_LINE_COUNTER
Definition: scope_exit.hpp:74
#define BOOST_SCOPE_EXIT_ALL_ID(id,...)
Definition: scope_exit.hpp:905
#define BOOST_SCOPE_EXIT_ALL_ID (   id,
  ... 
)
Value:
/* C++11 allows to use typename outside templates so */ \
/* always typename here and no need for ..._ALL_TPL */ \
/* (if a C++11 compiler does not implement this use of */ \
/* typename, always use `this` instead of `this_`) */ \
typename, \
__VA_ARGS__)))
#define BOOST_SCOPE_EXIT_AUX_PP_NON_VOID_LIST(...)
Definition: scope_exit.hpp:181
#define BOOST_SCOPE_EXIT_AUX_TRAITS_ALL(captures)
Definition: scope_exit.hpp:688
#define BOOST_SCOPE_EXIT_AUX_IMPL_LAMBDA(id, ty, traits)
Definition: scope_exit.hpp:747
#define BOOST_SCOPE_EXIT_AUX_ARG (   r,
  id,
  i,
  var 
)
Value:
boost_se_params_->BOOST_SCOPE_EXIT_DETAIL_PARAM(id, i, var).value
#define BOOST_PP_COMMA_IF(cond)
Definition: comma_if.hpp:27
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_AUX_ARG_DECL (   r,
  id_ty,
  i,
  var 
)
Value:
BOOST_PP_TUPLE_ELEM(2, 1, id_ty) \
i, var) \
#define BOOST_PP_COMMA_IF(cond)
Definition: comma_if.hpp:27
#define BOOST_SCOPE_EXIT_DETAIL_PARAMS_T(id)
Definition: scope_exit.hpp:279
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_T(id, i, var)
Definition: scope_exit.hpp:291
#define BOOST_PP_TUPLE_ELEM(size, n, tuple)
Definition: elem.hpp:57
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_AUX_ARGS   boost_scope_exit_aux_args
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG (   r,
  id,
  i,
  var 
)
Value:
#define BOOST_PP_COMMA_IF(cond)
Definition: comma_if.hpp:27
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
#define BOOST_PP_CAT(a, b)
Definition: cat.hpp:24
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_T(id, i, var)
Definition: scope_exit.hpp:291
Allocator Allocator a
Definition: function_template.hpp:727
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG_THIS (   id,
  ty,
  comma01 
)
Value:
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG_THIS_NAME(id)
Definition: scope_exit.hpp:556
#define BOOST_PP_COMMA_IF(cond)
Definition: comma_if.hpp:27
#define BOOST_SCOPE_EXIT_DETAIL_PARAMS_T(id)
Definition: scope_exit.hpp:279
#define BOOST_SCOPE_EXIT_AUX_THIS_T(id)
Definition: scope_exit.hpp:273
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG_THIS_NAME (   id)    BOOST_PP_CAT(boost_se_this_arg_, id)
#define BOOST_SCOPE_EXIT_AUX_DEREF (   id,
  i,
  var 
)
Value:
static_cast<BOOST_SCOPE_EXIT_DETAIL_TAG(id, i)>(0))
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
T & deref(T &r, val_tag)
Definition: scope_exit.hpp:246
#define BOOST_SCOPE_EXIT_DETAIL_TAG(id, i)
Definition: scope_exit.hpp:282
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_AUX_GCC   0
#define BOOST_SCOPE_EXIT_AUX_GUARD (   id)    BOOST_PP_CAT(boost_se_guard_, id)
#define BOOST_SCOPE_EXIT_AUX_GUARD_T (   id)    BOOST_PP_CAT(boost_se_guard_t_, id)
#define BOOST_SCOPE_EXIT_AUX_IMPL (   id,
  ty,
  traits 
)
#define BOOST_SCOPE_EXIT_AUX_IMPL_LAMBDA (   id,
  ty,
  traits 
)
Value:
/* no need for TYPEDEF THIS MSVC workaround on C++11 */ \
, \
)(id, ty, traits) \
, \
)(id, ty) \
(this) \
) \
; \
]( \
, \
)(id, ty) \
) mutable /* can change value captures (as with SCOPE_EXIT) */ -> void
#define BOOST_SCOPE_EXIT_AUX_TRAITS_HAS_THIS(traits)
Definition: scope_exit.hpp:695
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_TYPEDEFS(id, ty, traits)
Definition: scope_exit.hpp:738
Definition: scope_exit.hpp:703
#define BOOST_SCOPE_EXIT_AUX_TRAITS_CAPTURES(traits)
Definition: scope_exit.hpp:692
#define BOOST_PP_TUPLE_EAT(size)
Definition: eat.hpp:36
#define BOOST_SCOPE_EXIT_AUX_GUARD(id)
Definition: scope_exit.hpp:264
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_PP_LIST_ENUM(list)
Definition: enum.hpp:26
#define BOOST_PP_EXPR_IIF(bit, expr)
Definition: expr_iif.hpp:22
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_TYPE(id, ty)
Definition: scope_exit.hpp:733
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_PARAMS (   id)    BOOST_PP_CAT(boost_se_lambda_params_, id)
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_CAPTURE_TYPE (   id)    BOOST_PP_CAT(boost_se_lambda_this_t_, id)
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_PARAM_TYPE (   id)    BOOST_PP_CAT(boost_se_lambda_this_capture_t_, id)
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_TYPE (   id,
  ty 
)
Value:
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_PARAMS(id)
Definition: scope_exit.hpp:724
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_PARAM_TYPE(id)
Definition: scope_exit.hpp:730
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_TYPEDEFS (   id,
  ty,
  traits 
)
Value:
/* capture type for workaround GCC internal error (even on later C++11) */ \
};
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_PARAMS(id)
Definition: scope_exit.hpp:724
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_PARAM_TYPE(id)
Definition: scope_exit.hpp:730
#define BOOST_SCOPE_EXIT_AUX_LAMBDA_THIS_CAPTURE_TYPE(id)
Definition: scope_exit.hpp:727
#define BOOST_SCOPE_EXIT_DETAIL_TYPEDEF_TYPEOF_THIS(id, ty, new_type)
Definition: scope_exit.hpp:512
#define BOOST_SCOPE_EXIT_AUX_MEMBER (   r,
  id,
  i,
  var 
)
Value:
#define BOOST_SCOPE_EXIT_DETAIL_PARAM(id, i, var)
Definition: scope_exit.hpp:288
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_T(id, i, var)
Definition: scope_exit.hpp:291
#define BOOST_SCOPE_EXIT_DETAIL_TAG(id, i)
Definition: scope_exit.hpp:282
Definition: scope_exit.hpp:225
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_AUX_MEMBER_INIT (   r,
  id,
  i,
  var 
)
Value:
#define BOOST_PP_COMMA_IF(cond)
Definition: comma_if.hpp:27
#define BOOST_SCOPE_EXIT_DETAIL_PARAM(id, i, var)
Definition: scope_exit.hpp:288
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
#define BOOST_PP_CAT(a, b)
Definition: cat.hpp:24
Allocator Allocator a
Definition: function_template.hpp:727
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_AUX_MEMBER_THIS_INIT (   id,
  comma01 
)
Value:
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG_THIS_NAME(id)
Definition: scope_exit.hpp:556
#define BOOST_PP_COMMA_IF(cond)
Definition: comma_if.hpp:27
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_THIS(id)
Definition: scope_exit.hpp:285
#define BOOST_SCOPE_EXIT_AUX_PARAMS (   id)    BOOST_PP_CAT(boost_se_params_, id)
#define BOOST_SCOPE_EXIT_AUX_PARAMS_INIT (   id,
  captures,
  has_this 
)
Value:
has_this)) \
BOOST_PP_EXPR_IIF(has_this, this) \
#define BOOST_PP_BITAND(x, y)
Definition: bitand.hpp:22
#define BOOST_PP_RPAREN_IF(cond)
Definition: paren_if.hpp:34
#define BOOST_PP_BITOR(x, y)
Definition: bitor.hpp:22
#define BOOST_PP_COMMA_IF(cond)
Definition: comma_if.hpp:27
#define BOOST_PP_LIST_IS_CONS(list)
Definition: adt.hpp:62
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_INIT(r, id, i, var)
Definition: scope_exit.hpp:591
#define BOOST_PP_LPAREN_IF(cond)
Definition: paren_if.hpp:25
#define BOOST_PP_LIST_FOR_EACH_I(macro, data, list)
Definition: for_each_i.hpp:29
#define BOOST_PP_EXPR_IIF(bit, expr)
Definition: expr_iif.hpp:22
#define BOOST_SCOPE_EXIT_AUX_PARAMS_T_CTOR (   id,
  ty,
  captures,
  has_this 
)
Value:
BOOST_PP_IIF(has_this, \
, \
)(id, ty, BOOST_PP_LIST_IS_CONS(captures)) \
) \
has_this), \
: \
) \
captures) \
BOOST_PP_IIF(has_this, \
, \
)(id, BOOST_PP_LIST_IS_CONS(captures)) \
{}
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG(r, id, i, var)
Definition: scope_exit.hpp:548
#define BOOST_PP_BITOR(x, y)
Definition: bitor.hpp:22
#define BOOST_PP_TUPLE_EAT(size)
Definition: eat.hpp:36
#define BOOST_SCOPE_EXIT_DETAIL_PARAMS_T(id)
Definition: scope_exit.hpp:279
#define BOOST_PP_LIST_IS_CONS(list)
Definition: adt.hpp:62
#define BOOST_SCOPE_EXIT_AUX_MEMBER_INIT(r, id, i, var)
Definition: scope_exit.hpp:552
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_SCOPE_EXIT_AUX_CTOR_ARG_THIS(id, ty, comma01)
Definition: scope_exit.hpp:559
#define BOOST_PP_LIST_FOR_EACH_I(macro, data, list)
Definition: for_each_i.hpp:29
#define BOOST_PP_EXPR_IIF(bit, expr)
Definition: expr_iif.hpp:22
#define BOOST_SCOPE_EXIT_AUX_MEMBER_THIS_INIT(id, comma01)
Definition: scope_exit.hpp:564
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_BACK_ (   token,
  checking_postfix 
)    BOOST_PP_IS_UNARY(BOOST_PP_CAT(token, checking_postfix))
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_THISUNDERSCORE_BACK (   token)
Value:
BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_THISUNDERSCORE_IS)
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_BACK_(token, checking_postfix)
Definition: scope_exit.hpp:84
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_VOID_BACK (   token)
Value:
_BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_VOID_IS)
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_BACK_(token, checking_postfix)
Definition: scope_exit.hpp:84
#define BOOST_SCOPE_EXIT_AUX_PP_LINE_COUNTER   __LINE__
#define BOOST_SCOPE_EXIT_AUX_PP_NON_VOID_LIST (   ...)
Value:
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_NEVER_(tokens)
Definition: scope_exit.hpp:126
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_(is_void_macro,...)
Definition: scope_exit.hpp:166
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST (   ...)
Value:
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_(is_void_macro,...)
Definition: scope_exit.hpp:166
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_VOID_BACK(token)
Definition: scope_exit.hpp:91
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_ (   is_void_macro,
  ... 
)
Value:
__VA_ARGS__), 1), \
, \
)(is_void_macro, __VA_ARGS__)
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_(...)
Definition: scope_exit.hpp:155
#define BOOST_PP_EQUAL(x, y)
Definition: equal.hpp:26
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_FROM_VARIADIC_(unused,...)
Definition: scope_exit.hpp:161
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_HANDLE_SEQ_(is_void_macro, token)
Definition: scope_exit.hpp:118
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_FROM_SEQ_ (   unused,
  seq 
)    BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(seq), BOOST_PP_SEQ_TO_TUPLE(seq))
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_FROM_VARIADIC_ (   unused,
  ... 
)
Value:
__VA_ARGS__), (__VA_ARGS__))
#define BOOST_PP_TUPLE_TO_LIST(size, tuple)
Definition: to_list.hpp:47
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_(...)
Definition: scope_exit.hpp:155
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_HANDLE_SEQ_ (   is_void_macro,
  token 
)
Value:
BOOST_PP_IIF(BOOST_PP_IS_UNARY(token), /* unary paren (a)... */ \
, \
)(is_void_macro, token)
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_HANDLE_VOID_(is_void_macro, token)
Definition: scope_exit.hpp:109
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_FROM_SEQ_(unused, seq)
Definition: scope_exit.hpp:105
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_HANDLE_VOID_ (   is_void_macro,
  token 
)
Value:
BOOST_PP_IIF(is_void_macro(token), \
BOOST_PP_NIL \
, \
(token, BOOST_PP_NIL) \
)
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_NEVER_ (   tokens)    0 /* void check always returns false */
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_ (   ...)    BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_I_(__VA_ARGS__, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1,)
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST_VARIADIC_SIZE_I_ (   e0,
  e1,
  e2,
  e3,
  e4,
  e5,
  e6,
  e7,
  e8,
  e9,
  e10,
  e11,
  e12,
  e13,
  e14,
  e15,
  e16,
  e17,
  e18,
  e19,
  e20,
  e21,
  e22,
  e23,
  e24,
  e25,
  e26,
  e27,
  e28,
  e29,
  e30,
  e31,
  e32,
  e33,
  e34,
  e35,
  e36,
  e37,
  e38,
  e39,
  e40,
  e41,
  e42,
  e43,
  e44,
  e45,
  e46,
  e47,
  e48,
  e49,
  e50,
  e51,
  e52,
  e53,
  e54,
  e55,
  e56,
  e57,
  e58,
  e59,
  e60,
  e61,
  e62,
  e63,
  size,
  ... 
)    size
#define BOOST_SCOPE_EXIT_AUX_THIS_CAPTURE_T (   id)    BOOST_PP_CAT(boost_se_this_capture_t_, id)
#define BOOST_SCOPE_EXIT_AUX_THIS_T (   id)    BOOST_PP_CAT(boost_se_this_t_, id)
#define BOOST_SCOPE_EXIT_AUX_TPL_GCC_WORKAROUND_01   0
#define BOOST_SCOPE_EXIT_AUX_TRAITS (   captures)
Value:
(BOOST_PP_NIL, 0), captures)
#define BOOST_PP_LIST_FOLD_LEFT
Definition: fold_left.hpp:28
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP(d, captures_this, capture)
Definition: scope_exit.hpp:666
#define BOOST_SCOPE_EXIT_AUX_TRAITS_ALL (   captures)
Value:
#define BOOST_PP_LIST_REST(list)
Definition: adt.hpp:44
#define BOOST_SCOPE_EXIT_AUX_TRAITS(captures)
Definition: scope_exit.hpp:684
#define BOOST_SCOPE_EXIT_AUX_TRAITS_ALL_OP(ref_val, traits)
Definition: scope_exit.hpp:676
#define BOOST_PP_LIST_FIRST(list)
Definition: adt.hpp:32
#define BOOST_SCOPE_EXIT_AUX_TRAITS_ALL_OP (   ref_val,
  traits 
)
Value:
( \
BOOST_PP_LIST_APPEND((ref_val, BOOST_PP_NIL), \
, \
)
#define BOOST_SCOPE_EXIT_AUX_TRAITS_HAS_THIS(traits)
Definition: scope_exit.hpp:695
#define BOOST_SCOPE_EXIT_AUX_TRAITS_CAPTURES(traits)
Definition: scope_exit.hpp:692
#define BOOST_PP_LIST_APPEND(a, b)
Definition: append.hpp:25
#define BOOST_SCOPE_EXIT_AUX_TRAITS_CAPTURES (   traits)    BOOST_PP_TUPLE_ELEM(2, 0, traits)
#define BOOST_SCOPE_EXIT_AUX_TRAITS_HAS_THIS (   traits)    BOOST_PP_TUPLE_ELEM(2, 1, traits)
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP (   d,
  captures_this,
  capture 
)
Value:
capture), \
, \
)(d, BOOST_PP_TUPLE_ELEM(2, 0, captures_this), \
BOOST_PP_TUPLE_ELEM(2, 1, captures_this), capture)
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP_THIS(d, captures, this01, this_)
Definition: scope_exit.hpp:663
#define BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_IS_THISUNDERSCORE_BACK(token)
Definition: scope_exit.hpp:87
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP_CAPTURE(d, captures, this01, capture)
Definition: scope_exit.hpp:660
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_PP_TUPLE_ELEM(size, n, tuple)
Definition: elem.hpp:57
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP_CAPTURE (   d,
  captures,
  this01,
  capture 
)    (BOOST_PP_LIST_APPEND(captures, (capture, BOOST_PP_NIL)), this01)
#define BOOST_SCOPE_EXIT_AUX_TRAITS_OP_THIS (   d,
  captures,
  this01,
  this_ 
)    (captures, 1 /* has this (note, no error if multiple this_) */)
#define BOOST_SCOPE_EXIT_AUX_TYPEOF_THIS_MSVC_WORKAROUND_01   0
#define BOOST_SCOPE_EXIT_AUX_WRAPPED (   id,
 
)    BOOST_PP_SEQ_CAT( (boost_se_wrapped_t_)(i)(_)(id) )
#define BOOST_SCOPE_EXIT_DETAIL_CAPTURE_DECL (   r,
  id_ty,
  i,
  var 
)
Value:
typedef \
/* no need to use TYPEOF_TPL here because it's a typedef */ \
i, var))) \
; \
typedef BOOST_PP_TUPLE_ELEM(2, 1, id_ty) \
i, var) \
;
#define BOOST_SCOPE_EXIT_DETAIL_CAPTURE_T(id, i, var)
Definition: scope_exit.hpp:294
#define BOOST_SCOPE_EXIT_AUX_WRAPPED(id, i)
Definition: scope_exit.hpp:297
#define BOOST_SCOPE_EXIT_AUX_DEREF(id, i, var)
Definition: scope_exit.hpp:300
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
wrapper< T > wrap(T &)
#define BOOST_PP_TUPLE_ELEM(size, n, tuple)
Definition: elem.hpp:57
adjacency_iterator typedef T::adjacency_iterator type
Definition: graph_traits.hpp:42
#define BOOST_TYPEOF(expr)
Definition: typeof_impl.hpp:78
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_DETAIL_CAPTURE_T (   id,
  i,
  var 
)    BOOST_PP_SEQ_CAT( (boost_se_capture_t_)(i)(_)(id) )
#define BOOST_SCOPE_EXIT_DETAIL_PARAM (   id,
  i,
  var 
)    BOOST_PP_SEQ_CAT( (boost_se_param_)(i)(_)(id) )
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_DECL (   r,
  id_ty,
  i,
  var 
)
Value:
i, var) \
i, var) \
;
#define BOOST_SCOPE_EXIT_DETAIL_CAPTURE_T(id, i, var)
Definition: scope_exit.hpp:294
actor< variable< T > > const var(T &v)
Definition: primitives.hpp:230
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_T(id, i, var)
Definition: scope_exit.hpp:291
#define BOOST_PP_TUPLE_ELEM(size, n, tuple)
Definition: elem.hpp:57
unsigned i
Definition: bitwise.hpp:313
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_INIT (   r,
  id,
  i,
  var 
)    BOOST_PP_COMMA_IF(i) BOOST_SCOPE_EXIT_AUX_DEREF(id,i,var)
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_T (   id,
  i,
  var 
)    BOOST_PP_SEQ_CAT( (boost_se_param_t_)(i)(_)(id) )
#define BOOST_SCOPE_EXIT_DETAIL_PARAM_THIS (   id)    BOOST_PP_SEQ_CAT( (boost_se_param_this_)(id) )
#define BOOST_SCOPE_EXIT_DETAIL_PARAMS_T (   id)    BOOST_PP_CAT(boost_se_params_t_, id)
#define BOOST_SCOPE_EXIT_DETAIL_TAG (   id,
 
)    BOOST_PP_SEQ_CAT( (boost_se_tag_)(i)(_)(id) )
#define BOOST_SCOPE_EXIT_DETAIL_TAG_DECL (   r,
  id,
  i,
  var 
)    typedef void (*BOOST_SCOPE_EXIT_DETAIL_TAG(id, i))(int var);
#define BOOST_SCOPE_EXIT_DETAIL_TYPEDEF_TYPEOF_THIS (   id,
  ty,
  new_type 
)
Value:
typedef /* trailing `EMPTY()` handles empty `ty` */ \
, \
)(this) \
new_type \
;
#define BOOST_TYPEOF_TPL(expr)
Definition: typeof_impl.hpp:81
#define BOOST_PP_IS_EMPTY(x)
Definition: is_empty.hpp:46
#define BOOST_PP_IIF(bit, t, f)
Definition: iif.hpp:20
#define BOOST_TYPEOF(expr)
Definition: typeof_impl.hpp:78
#define BOOST_PP_EMPTY()
Definition: empty.hpp:21
#define BOOST_SCOPE_EXIT_END_ID (   id)    } BOOST_SCOPE_EXIT_AUX_GUARD(id)(BOOST_SCOPE_EXIT_AUX_ARGS.value);
#define BOOST_SCOPE_EXIT_ID (   id,
  ... 
)
Value:
#define BOOST_SCOPE_EXIT_AUX_IMPL(id, ty, traits)
Definition: scope_exit.hpp:787
#define BOOST_SCOPE_EXIT_AUX_TRAITS(captures)
Definition: scope_exit.hpp:684
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST(...)
Definition: scope_exit.hpp:176
#define BOOST_PP_EMPTY()
Definition: empty.hpp:21
#define BOOST_SCOPE_EXIT_ID_TPL (   id,
  ... 
)
Value:
#define BOOST_SCOPE_EXIT_AUX_IMPL(id, ty, traits)
Definition: scope_exit.hpp:787
#define BOOST_SCOPE_EXIT_AUX_TRAITS(captures)
Definition: scope_exit.hpp:684
#define BOOST_SCOPE_EXIT_AUX_PP_VOID_LIST(...)
Definition: scope_exit.hpp:176
#define BOOST_SCOPE_EXIT_TPL (   ...)
Value:
__VA_ARGS__)
#define BOOST_SCOPE_EXIT_AUX_PP_LINE_COUNTER
Definition: scope_exit.hpp:74
#define BOOST_SCOPE_EXIT_ID_TPL(id,...)
Definition: scope_exit.hpp:894
#define this_BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_THISUNDERSCORE_IS   (1) /* unary */
#define void_BOOST_SCOPE_EXIT_AUX_PP_KEYWORD_VOID_IS   (1) /* unary */

Variable Documentation

boost::scope_exit::detail::undeclared boost_scope_exit_aux_args