16 #if defined(BOOST_MSVC) 17 # pragma warning( push ) 18 # pragma warning( disable : 4127 ) // "conditional expression is constant" 21 #define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T) 23 #define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T) 25 #define BOOST_FUNCTION_PARM(J,I,D) BOOST_PP_CAT(T,I) BOOST_PP_CAT(a,I) 27 #define BOOST_FUNCTION_PARMS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_PARM,BOOST_PP_EMPTY) 29 #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES 30 # define BOOST_FUNCTION_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, a) 33 # define BOOST_FUNCTION_ARG(J,I,D) ::boost::forward< BOOST_PP_CAT(T,I) >(BOOST_PP_CAT(a,I)) 34 # define BOOST_FUNCTION_ARGS BOOST_PP_ENUM(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG,BOOST_PP_EMPTY) 37 #define BOOST_FUNCTION_ARG_TYPE(J,I,D) \ 38 typedef BOOST_PP_CAT(T,I) BOOST_PP_CAT(BOOST_PP_CAT(arg, BOOST_PP_INC(I)),_type); 40 #define BOOST_FUNCTION_ARG_TYPES BOOST_PP_REPEAT(BOOST_FUNCTION_NUM_ARGS,BOOST_FUNCTION_ARG_TYPE,BOOST_PP_EMPTY) 43 #if BOOST_FUNCTION_NUM_ARGS == 0 44 # define BOOST_FUNCTION_COMMA 46 # define BOOST_FUNCTION_COMMA , 47 #endif // BOOST_FUNCTION_NUM_ARGS > 0 50 #define BOOST_FUNCTION_FUNCTION BOOST_JOIN(function,BOOST_FUNCTION_NUM_ARGS) 51 #define BOOST_FUNCTION_FUNCTION_INVOKER \ 52 BOOST_JOIN(function_invoker,BOOST_FUNCTION_NUM_ARGS) 53 #define BOOST_FUNCTION_VOID_FUNCTION_INVOKER \ 54 BOOST_JOIN(void_function_invoker,BOOST_FUNCTION_NUM_ARGS) 55 #define BOOST_FUNCTION_FUNCTION_OBJ_INVOKER \ 56 BOOST_JOIN(function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) 57 #define BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER \ 58 BOOST_JOIN(void_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) 59 #define BOOST_FUNCTION_FUNCTION_REF_INVOKER \ 60 BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) 61 #define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \ 62 BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) 63 #define BOOST_FUNCTION_MEMBER_INVOKER \ 64 BOOST_JOIN(function_mem_invoker,BOOST_FUNCTION_NUM_ARGS) 65 #define BOOST_FUNCTION_VOID_MEMBER_INVOKER \ 66 BOOST_JOIN(function_void_mem_invoker,BOOST_FUNCTION_NUM_ARGS) 67 #define BOOST_FUNCTION_GET_FUNCTION_INVOKER \ 68 BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS) 69 #define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \ 70 BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS) 71 #define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \ 72 BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS) 73 #define BOOST_FUNCTION_GET_MEMBER_INVOKER \ 74 BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS) 75 #define BOOST_FUNCTION_GET_INVOKER \ 76 BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS) 77 #define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS) 79 #ifndef BOOST_NO_VOID_RETURNS 80 # define BOOST_FUNCTION_VOID_RETURN_TYPE void 81 # define BOOST_FUNCTION_RETURN(X) X 83 # define BOOST_FUNCTION_VOID_RETURN_TYPE boost::detail::function::unusable 84 # define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE () 100 FunctionPtr
f =
reinterpret_cast<FunctionPtr
>(
function_ptr.func_ptr);
106 typename FunctionPtr,
117 FunctionPtr
f =
reinterpret_cast<FunctionPtr
>(
function_ptr.func_ptr);
123 typename FunctionObj,
135 f =
reinterpret_cast<FunctionObj*
>(&function_obj_ptr.data);
137 f =
reinterpret_cast<FunctionObj*
>(function_obj_ptr.obj_ptr);
143 typename FunctionObj,
156 f =
reinterpret_cast<FunctionObj*
>(&function_obj_ptr.data);
158 f =
reinterpret_cast<FunctionObj*
>(function_obj_ptr.obj_ptr);
164 typename FunctionObj,
175 reinterpret_cast<FunctionObj*
>(function_obj_ptr.obj_ptr);
181 typename FunctionObj,
193 reinterpret_cast<FunctionObj*
>(function_obj_ptr.obj_ptr);
198 #if BOOST_FUNCTION_NUM_ARGS > 0 212 reinterpret_cast<MemberPtr*
>(&function_obj_ptr.data);
230 reinterpret_cast<MemberPtr*
>(&function_obj_ptr.data);
237 typename FunctionPtr,
258 typename FunctionObj,
279 typename FunctionObj,
299 #if BOOST_FUNCTION_NUM_ARGS > 0 332 template<
typename Tag>
339 template<
typename FunctionPtr,
353 template<
typename FunctionPtr,
369 #if BOOST_FUNCTION_NUM_ARGS > 0 374 template<
typename MemberPtr,
388 template<
typename MemberPtr,
409 template<
typename FunctionObj,
423 template<
typename FunctionObj,
443 template<
typename RefWrapper,
457 template<
typename RefWrapper,
481 template<
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
484 #ifndef BOOST_NO_VOID_RETURNS 488 #endif // BOOST_NO_VOID_RETURNS 498 return assign_to(f, functor,
tag());
500 template<
typename F,
typename Allocator>
504 return assign_to_a(f, functor, a,
tag());
515 template<
typename FunctionPtr>
519 this->clear(functor);
523 functor.
func_ptr =
reinterpret_cast<void (*)()
>(
f);
529 template<
typename FunctionPtr,
typename Allocator>
537 #if BOOST_FUNCTION_NUM_ARGS > 0 538 template<
typename MemberPtr>
545 this->assign_to(std::mem_fn(f), functor);
551 template<
typename MemberPtr,
typename Allocator>
558 this->assign_to_a(std::mem_fn(f), functor, a);
564 #endif // BOOST_FUNCTION_NUM_ARGS > 0 568 template<
typename FunctionObj>
572 new (
reinterpret_cast<void*
>(&functor.
data)) FunctionObj(f);
574 template<
typename FunctionObj,
typename Allocator>
582 template<
typename FunctionObj>
586 functor.
obj_ptr =
new FunctionObj(f);
588 template<
typename FunctionObj,
typename Allocator>
593 typedef typename Allocator::template rebind<functor_wrapper_type>::other
594 wrapper_allocator_type;
596 wrapper_allocator_type wrapper_allocator(a);
597 wrapper_allocator_pointer_type
copy = wrapper_allocator.allocate(1);
598 wrapper_allocator.construct(copy, functor_wrapper_type(f,a));
599 functor_wrapper_type* new_f =
static_cast<functor_wrapper_type*
>(
copy);
603 template<
typename FunctionObj>
608 assign_functor(f, functor,
615 template<
typename FunctionObj,
typename Allocator>
620 assign_functor_a(f, functor, a,
629 template<
typename FunctionObj>
639 template<
typename FunctionObj,
typename Allocator>
660 #if BOOST_FUNCTION_NUM_ARGS == 1 662 ,
public std::unary_function<T0,R>
664 #elif BOOST_FUNCTION_NUM_ARGS == 2 666 ,
public std::binary_function<T0,T1,R>
672 #ifndef BOOST_NO_VOID_RETURNS 677 #endif // BOOST_NO_VOID_RETURNS 686 reinterpret_cast<std::size_t
>(vtable) & ~static_cast<std::size_t>(0x01));
695 template<
typename Args>
701 #if BOOST_FUNCTION_NUM_ARGS == 1 702 typedef T0 argument_type;
703 #elif BOOST_FUNCTION_NUM_ARGS == 2 704 typedef T0 first_argument_type;
705 typedef T1 second_argument_type;
717 template<
typename Functor>
719 #ifndef BOOST_NO_SFINAE
730 template<
typename Functor,
typename Allocator>
732 #ifndef BOOST_NO_SFINAE
741 this->assign_to_a(
f,
a);
744 #ifndef BOOST_NO_SFINAE 755 this->assign_to_own(f);
758 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 761 this->move_assign(
f);
772 return get_vtable()->invoker
781 template<
typename Functor>
782 #ifndef BOOST_NO_SFINAE 802 template<
typename Functor,
typename Allocator>
807 this->assign_to_a(
f,a);
815 #ifndef BOOST_NO_SFINAE 838 this->assign_to_own(f);
847 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 857 this->move_assign(
f);
874 this->move_assign(other);
882 if (!this->has_trivial_copy_and_destroy())
883 get_vtable()->clear(this->functor);
888 #if (defined __SUNPRO_CC) && (__SUNPRO_CC <= 0x530) && !(defined BOOST_NO_COMPILER_CONFIG) 890 operator bool ()
const {
return !this->empty(); }
897 typedef void (dummy::*safe_bool)();
900 operator safe_bool ()
const 901 {
return (this->empty())? 0 : &dummy::nonnull; }
904 {
return this->empty(); }
912 if (this->has_trivial_copy_and_destroy())
915 get_vtable()->base.manager(f.
functor, this->functor,
920 template<
typename Functor>
927 typedef typename get_invoker::
932 typedef typename handler_type::invoker_type invoker_type;
933 typedef typename handler_type::manager_type manager_type;
940 { { &manager_type::manage }, &invoker_type::invoke };
942 if (stored_vtable.
assign_to(f, functor)) {
943 std::size_t
value =
reinterpret_cast<std::size_t
>(&stored_vtable.
base);
948 value |=
static_cast<std::size_t
>(0x01);
954 template<
typename Functor,
typename Allocator>
961 typedef typename get_invoker::
967 typedef typename handler_type::invoker_type invoker_type;
968 typedef typename handler_type::manager_type manager_type;
975 { { &manager_type::manage }, &invoker_type::invoke };
978 std::size_t
value =
reinterpret_cast<std::size_t
>(&stored_vtable.
base);
983 value |=
static_cast<std::size_t
>(0x01);
1000 if (this->has_trivial_copy_and_destroy())
1003 get_vtable()->base.manager(f.
functor, this->functor,
1017 template<
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
1031 template<
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
1038 template<
typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS>
1046 #if !defined(BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX) 1048 #if BOOST_FUNCTION_NUM_ARGS == 0 1049 #define BOOST_FUNCTION_PARTIAL_SPEC R (void) 1051 #define BOOST_FUNCTION_PARTIAL_SPEC R (BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS,T)) 1062 struct clear_type {};
1066 function() : base_type() {}
1068 template<
typename Functor>
1070 #ifndef BOOST_NO_SFINAE 1080 template<
typename Functor,
typename Allocator>
1081 function(Functor
f, Allocator
a 1082 #ifndef BOOST_NO_SFINAE 1093 #ifndef BOOST_NO_SFINAE 1094 function(clear_type*) : base_type() {}
1097 function(
const self_type&
f) : base_type(static_cast<const base_type&>(
f)){}
1099 function(
const base_type&
f) : base_type(static_cast<const base_type&>(
f)){}
1101 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 1103 function(self_type&&
f): base_type(static_cast<base_type&&>(
f)){}
1104 function(base_type&&
f): base_type(static_cast<base_type&&>(
f)){}
1109 self_type(f).swap(*
this);
1113 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 1116 self_type(static_cast<self_type&&>(
f)).swap(*
this);
1121 template<
typename Functor>
1122 #ifndef BOOST_NO_SFINAE 1132 self_type(f).swap(*
this);
1136 #ifndef BOOST_NO_SFINAE 1146 self_type(f).swap(*
this);
1150 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 1153 self_type(static_cast<base_type&&>(
f)).swap(*
this);
1159 #undef BOOST_FUNCTION_PARTIAL_SPEC 1160 #endif // have partial specialization 1165 #undef BOOST_FUNCTION_VTABLE 1166 #undef BOOST_FUNCTION_COMMA 1167 #undef BOOST_FUNCTION_FUNCTION 1168 #undef BOOST_FUNCTION_FUNCTION_INVOKER 1169 #undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER 1170 #undef BOOST_FUNCTION_FUNCTION_OBJ_INVOKER 1171 #undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER 1172 #undef BOOST_FUNCTION_FUNCTION_REF_INVOKER 1173 #undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER 1174 #undef BOOST_FUNCTION_MEMBER_INVOKER 1175 #undef BOOST_FUNCTION_VOID_MEMBER_INVOKER 1176 #undef BOOST_FUNCTION_GET_FUNCTION_INVOKER 1177 #undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER 1178 #undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER 1179 #undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER 1180 #undef BOOST_FUNCTION_GET_INVOKER 1181 #undef BOOST_FUNCTION_TEMPLATE_PARMS 1182 #undef BOOST_FUNCTION_TEMPLATE_ARGS 1183 #undef BOOST_FUNCTION_PARMS 1184 #undef BOOST_FUNCTION_PARM 1185 #ifdef BOOST_FUNCTION_ARG 1186 # undef BOOST_FUNCTION_ARG 1188 #undef BOOST_FUNCTION_ARGS 1189 #undef BOOST_FUNCTION_ARG_TYPE 1190 #undef BOOST_FUNCTION_ARG_TYPES 1191 #undef BOOST_FUNCTION_VOID_RETURN_TYPE 1192 #undef BOOST_FUNCTION_RETURN 1194 #if defined(BOOST_MSVC) 1195 # pragma warning( pop )
void assign_to_own(const BOOST_FUNCTION_FUNCTION &f)
bool assign_to_a(FunctionPtr f, function_buffer &functor, Allocator, function_ptr_tag) const
BOOST_FORCEINLINE T * addressof(T &v)
BOOST_FUNCTION_FUNCTION & operator=(const BOOST_FUNCTION_FUNCTION &f)
void assign(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a)
GLenum GLsizei const void * pointer
boost_foreach_argument_dependent_lookup_hack tag
bool assign_to_a(FunctionObj f, function_buffer &functor, Allocator a, function_obj_tag) const
enable_if_c< (boost::type_traits::ice_not< (is_integral< Functor >::value)>::value), BOOST_FUNCTION_FUNCTION & >::type operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
typedef void(APIENTRY *GLDEBUGPROC)(GLenum source
#define BOOST_FUNCTION_TEMPLATE_ARGS
void assign_to_a(Functor f, Allocator a)
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
#define BOOST_FUNCTION_VOID_RETURN_TYPE
mpl::if_c<(is_void< R >::value), BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >, BOOST_FUNCTION_FUNCTION_OBJ_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS > >::type type
functor_manager_a< FunctionObj, Allocator > manager_type
bool assign_to_a(const reference_wrapper< FunctionObj > &f, function_buffer &functor, Allocator, function_obj_ref_tag) const
BOOST_FUNCTION_GET_FUNCTION_INVOKER< FunctionPtr, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >::type invoker_type
BOOST_FORCEINLINE T * get_pointer() const
BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >::type invoker_type
static R invoke(function_buffer &function_obj_ptr BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
bool has_empty_target(const function_base *f)
#define BOOST_FUNCTION_ARG_TYPES
#define BOOST_FUNCTION_RETURN(X)
BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >::type invoker_type
detail::function::vtable_base * vtable
BOOST_NORETURN void throw_exception(E const &e)
void swap(BOOST_FUNCTION_FUNCTION &other)
BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< typename RefWrapper::type, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >::type invoker_type
#define BOOST_FUNCTION_TARGET_FIX(x)
static BOOST_FUNCTION_VOID_RETURN_TYPE invoke(function_buffer &function_ptr BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
#define BOOST_FUNCTION_MEMBER_INVOKER
#define BOOST_FUNCTION_PARTIAL_SPEC
#define BOOST_FUNCTION_TEMPLATE_PARMS
BOOST_FUNCTION_FUNCTION(clear_type *)
bool assign_to(FunctionObj f, function_buffer &functor, function_obj_tag) const
BOOST_FUNCTION_FUNCTION()
bool operator!=(const function_base &f, detail::function::useless_clear_type *)
GLboolean GLboolean GLboolean GLboolean a
BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, typename enable_if_c< (boost::type_traits::ice_not< (is_integral< Functor >::value)>::value), int >::type=0)
functor_manager< FunctionObj > manager_type
#define BOOST_FUNCTION_FUNCTION
struct boost::detail::function::function_buffer::obj_ref_t obj_ref
BOOST_FUNCTION_FUNCTION(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a, typename enable_if_c< (boost::type_traits::ice_not< (is_integral< Functor >::value)>::value), int >::type=0)
mpl::if_c<(is_void< R >::value), BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >, BOOST_FUNCTION_FUNCTION_REF_INVOKER< FunctionObj, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS > >::type type
mpl::if_c<(is_void< R >::value), BOOST_FUNCTION_VOID_FUNCTION_INVOKER< FunctionPtr, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >, BOOST_FUNCTION_FUNCTION_INVOKER< FunctionPtr, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS > >::type type
self_type & operator=(self_type &&f)
vtable_type * get_vtable() const
BOOST_FUNCTION_FUNCTION< R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS > base_type
BOOST_FUNCTION_FUNCTION(const BOOST_FUNCTION_FUNCTION &f)
functor_manager< FunctionPtr > manager_type
enable_if_c< (boost::type_traits::ice_not< (is_integral< Functor >::value)>::value), self_type & >::type operator=(Functor f)
#define BOOST_FUNCTION_COMMA
bool is_volatile_qualified
static BOOST_FUNCTION_VOID_RETURN_TYPE invoke(function_buffer &function_obj_ptr BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
Contains a reference to an object of type T.
void assign_to(Functor f)
bool assign_to(F f, function_buffer &functor) const
BOOST_FUNCTION_GET_FUNCTION_INVOKER< FunctionPtr, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >::type invoker_type
self_type & operator=(base_type &&f)
functor_manager< FunctionPtr > manager_type
static R invoke(function_buffer &function_ptr BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
#define BOOST_FUNCTION_VOID_MEMBER_INVOKER
self_type & operator=(const self_type &f)
void assign_functor(FunctionObj f, function_buffer &functor, mpl::true_) const
reference_manager< typename RefWrapper::type > manager_type
BOOST_GPU_ENABLED void swap(T1 &left, T2 &right)
BOOST_FUNCTION_ARG_TYPES typedef BOOST_FUNCTION_FUNCTION self_type
BOOST_FUNCTION_FUNCTION & operator=(clear_type *)
#define BOOST_FUNCTION_GET_MEMBER_INVOKER
self_type & operator=(const base_type &f)
static R invoke(function_buffer &function_obj_ptr BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
#define BOOST_FUNCTION_ARGS
void assign_functor_a(FunctionObj f, function_buffer &functor, Allocator a, mpl::false_) const
#define BOOST_FUNCTION_PARMS
static BOOST_FUNCTION_VOID_RETURN_TYPE invoke(function_buffer &function_obj_ptr BOOST_FUNCTION_COMMA BOOST_FUNCTION_PARMS)
BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER< typename RefWrapper::type, R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS >::type invoker_type
void assign_functor_a(FunctionObj f, function_buffer &functor, Allocator, mpl::true_) const
reference_manager< typename RefWrapper::type > manager_type
#define BOOST_ASSERT(expr)
void assign_functor(FunctionObj f, function_buffer &functor, mpl::false_) const
bool assign_to(FunctionPtr f, function_buffer &functor, function_ptr_tag) const
bool assign_to_a(F f, function_buffer &functor, Allocator a) const
result_type operator()(BOOST_FUNCTION_PARMS) const
self_type & operator=(clear_type *)
#define BOOST_STATIC_CONSTANT(type, assignment)
boost::detail::function::BOOST_FUNCTION_VTABLE< R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_ARGS > vtable_type
BOOST_FUNCTION_FUNCTION(BOOST_FUNCTION_FUNCTION &&f)
void move_assign(BOOST_FUNCTION_FUNCTION &f)
~BOOST_FUNCTION_FUNCTION()
detail::function::function_buffer functor
BOOST_FUNCTION_FUNCTION & operator=(BOOST_FUNCTION_FUNCTION &&f)
#define BOOST_FUNCTION_NUM_ARGS
bool assign_to(const reference_wrapper< FunctionObj > &f, function_buffer &functor, function_obj_ref_tag) const
bool operator==(const function_base &f, detail::function::useless_clear_type *)
void clear(function_buffer &functor) const
void copy(void *dst, void const *src, size_t size)