forked from boostorg/function
Boost.Function:
- Redesigned decision procedure for "is it a function pointer" vs. "is it an object". - No longer requires copy constructions of function objects during assignment or construction. - Added operator! to boost::function_base instead of relying on safe_bool conversion. - BOOST_NO_DEPENDENT_BASE_LOOKUP is now unnecessary - BOOST_WEAK_CONVERSION_OPERATORS is now unnecessary - BOOST_WEAK_FUNCTION_TEMPLATE_ORDERING is now unnecessary [SVN r10481]
This commit is contained in:
@ -456,56 +456,68 @@ namespace boost {
|
|||||||
function() : base_type() {}
|
function() : base_type() {}
|
||||||
|
|
||||||
template<typename Functor>
|
template<typename Functor>
|
||||||
function(Functor BOOST_MSVC_INCLUDE(const &) f) : base_type(f) {}
|
function(const Functor& f) : base_type(f) {}
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
template<typename Functor>
|
||||||
|
function(const Functor* fc) : base_type(fc) {}
|
||||||
|
#endif // __BORLANDC__
|
||||||
|
|
||||||
function(const function& f) : base_type(static_cast<const base_type&>(f)){}
|
function(const function& f) : base_type(static_cast<const base_type&>(f)){}
|
||||||
|
|
||||||
|
template<typename Functor>
|
||||||
|
function& operator=(const Functor& f)
|
||||||
|
{
|
||||||
|
this->assign_to(f);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
template<typename Functor>
|
||||||
|
function& operator=(const Functor* fc)
|
||||||
|
{
|
||||||
|
Functor* f = const_cast<Functor*>(fc);
|
||||||
|
this->assign_to(f);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
#endif // __BORLANDC__
|
||||||
|
|
||||||
|
function& operator=(const base_type& f)
|
||||||
|
{
|
||||||
|
this->assign_to_own(f);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
function& operator=(const function& f)
|
function& operator=(const function& f)
|
||||||
{
|
{
|
||||||
if (this == &f)
|
this->assign_to_own(f);
|
||||||
return *this;
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
const base_type& bf = static_cast<const base_type&>(f);
|
template<typename Functor>
|
||||||
base_type* self = this;
|
void set(const Functor& f)
|
||||||
self->set(bf);
|
{
|
||||||
return *this;
|
this->assign_to(f);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
template<typename Functor>
|
||||||
|
void set(const Functor* fc)
|
||||||
|
{
|
||||||
|
Functor* f = const_cast<Functor*>(fc);
|
||||||
|
this->assign_to(f);
|
||||||
|
}
|
||||||
|
#endif // __BORLANDC__
|
||||||
|
|
||||||
|
void set(const base_type& f)
|
||||||
|
{
|
||||||
|
this->assign_to_own(f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void set(const function& f)
|
void set(const function& f)
|
||||||
{
|
{
|
||||||
if (this == &f)
|
this->assign_to_own(f);
|
||||||
return;
|
|
||||||
|
|
||||||
const base_type& bf = static_cast<const base_type&>(f);
|
|
||||||
base_type* self = this;
|
|
||||||
self->set(bf);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void swap(function& other)
|
|
||||||
{
|
|
||||||
#ifndef BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
|
|
||||||
std::swap(this->manager, other.manager);
|
|
||||||
std::swap(this->functor, other.functor);
|
|
||||||
std::swap(this->invoker, other.invoker);
|
|
||||||
#else
|
|
||||||
std::swap(this->impl, other.impl);
|
|
||||||
#endif // BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef BOOST_NO_DEPENDENT_BASE_LOOKUP
|
|
||||||
template<typename Functor>
|
|
||||||
function& operator=(Functor BOOST_MSVC_INCLUDE(const &) f)
|
|
||||||
{
|
|
||||||
this->set(f);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
base_type& operator=(const base_type& f)
|
|
||||||
{
|
|
||||||
this->set(f);
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
#endif // BOOST_NO_DEPENDENT_BASE_LOOKUP
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename R,
|
template<typename R,
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS
|
#define BOOST_FUNCTION_PARMS
|
||||||
#define BOOST_FUNCTION_ARGS
|
#define BOOST_FUNCTION_ARGS
|
||||||
#define BOOST_FUNCTION_FUNCTION function0
|
#define BOOST_FUNCTION_FUNCTION function0
|
||||||
|
#define BOOST_FUNCTION_BASE function0_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base0
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base0
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker0
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker0
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker0
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker0
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1
|
#define BOOST_FUNCTION_PARMS T1 a1
|
||||||
#define BOOST_FUNCTION_ARGS a1
|
#define BOOST_FUNCTION_ARGS a1
|
||||||
#define BOOST_FUNCTION_FUNCTION function1
|
#define BOOST_FUNCTION_FUNCTION function1
|
||||||
|
#define BOOST_FUNCTION_BASE function1_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base1
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base1
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker1
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker1
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker1
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker1
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9, T10 a10
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9, T10 a10
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7, a8, a9, a10
|
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7, a8, a9, a10
|
||||||
#define BOOST_FUNCTION_FUNCTION function10
|
#define BOOST_FUNCTION_FUNCTION function10
|
||||||
|
#define BOOST_FUNCTION_BASE function10_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base10
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base10
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker10
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker10
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker10
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker10
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2
|
#define BOOST_FUNCTION_ARGS a1, a2
|
||||||
#define BOOST_FUNCTION_FUNCTION function2
|
#define BOOST_FUNCTION_FUNCTION function2
|
||||||
|
#define BOOST_FUNCTION_BASE function2_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base2
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base2
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker2
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker2
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker2
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker2
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3
|
#define BOOST_FUNCTION_ARGS a1, a2, a3
|
||||||
#define BOOST_FUNCTION_FUNCTION function3
|
#define BOOST_FUNCTION_FUNCTION function3
|
||||||
|
#define BOOST_FUNCTION_BASE function3_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base3
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base3
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker3
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker3
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker3
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker3
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4
|
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4
|
||||||
#define BOOST_FUNCTION_FUNCTION function4
|
#define BOOST_FUNCTION_FUNCTION function4
|
||||||
|
#define BOOST_FUNCTION_BASE function4_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base4
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base4
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker4
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker4
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker4
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker4
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5
|
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5
|
||||||
#define BOOST_FUNCTION_FUNCTION function5
|
#define BOOST_FUNCTION_FUNCTION function5
|
||||||
|
#define BOOST_FUNCTION_BASE function5_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base5
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base5
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker5
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker5
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker5
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker5
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6
|
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6
|
||||||
#define BOOST_FUNCTION_FUNCTION function6
|
#define BOOST_FUNCTION_FUNCTION function6
|
||||||
|
#define BOOST_FUNCTION_BASE function6_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base6
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base6
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker6
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker6
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker6
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker6
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7
|
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7
|
||||||
#define BOOST_FUNCTION_FUNCTION function7
|
#define BOOST_FUNCTION_FUNCTION function7
|
||||||
|
#define BOOST_FUNCTION_BASE function7_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base7
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base7
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker7
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker7
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker7
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker7
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7, a8
|
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7, a8
|
||||||
#define BOOST_FUNCTION_FUNCTION function8
|
#define BOOST_FUNCTION_FUNCTION function8
|
||||||
|
#define BOOST_FUNCTION_BASE function8_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base8
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base8
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker8
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker8
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker8
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker8
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9
|
#define BOOST_FUNCTION_PARMS T1 a1, T2 a2, T3 a3, T4 a4, T5 a5, T6 a6, T7 a7, T8 a8, T9 a9
|
||||||
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7, a8, a9
|
#define BOOST_FUNCTION_ARGS a1, a2, a3, a4, a5, a6, a7, a8, a9
|
||||||
#define BOOST_FUNCTION_FUNCTION function9
|
#define BOOST_FUNCTION_FUNCTION function9
|
||||||
|
#define BOOST_FUNCTION_BASE function9_base
|
||||||
#define BOOST_FUNCTION_INVOKER_BASE invoker_base9
|
#define BOOST_FUNCTION_INVOKER_BASE invoker_base9
|
||||||
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker9
|
#define BOOST_FUNCTION_FUNCTION_INVOKER function_invoker9
|
||||||
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker9
|
#define BOOST_FUNCTION_VOID_FUNCTION_INVOKER void_function_invoker9
|
||||||
@ -46,6 +47,7 @@
|
|||||||
#undef BOOST_FUNCTION_PARMS
|
#undef BOOST_FUNCTION_PARMS
|
||||||
#undef BOOST_FUNCTION_ARGS
|
#undef BOOST_FUNCTION_ARGS
|
||||||
#undef BOOST_FUNCTION_FUNCTION
|
#undef BOOST_FUNCTION_FUNCTION
|
||||||
|
#undef BOOST_FUNCTION_BASE
|
||||||
#undef BOOST_FUNCTION_INVOKER_BASE
|
#undef BOOST_FUNCTION_INVOKER_BASE
|
||||||
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_FUNCTION_INVOKER
|
||||||
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
#undef BOOST_FUNCTION_VOID_FUNCTION_INVOKER
|
||||||
|
@ -22,13 +22,6 @@
|
|||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/type_traits.hpp>
|
#include <boost/type_traits.hpp>
|
||||||
|
|
||||||
// Microsoft Visual C++ 6.0sp5 has lots of quirks
|
|
||||||
#ifdef BOOST_MSVC
|
|
||||||
# define BOOST_MSVC_INCLUDE(x) x
|
|
||||||
#else
|
|
||||||
# define BOOST_MSVC_INCLUDE(x)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace detail {
|
namespace detail {
|
||||||
namespace function {
|
namespace function {
|
||||||
@ -191,7 +184,6 @@ namespace boost {
|
|||||||
type */
|
type */
|
||||||
pointer_type victim = static_cast<pointer_type>(f);
|
pointer_type victim = static_cast<pointer_type>(f);
|
||||||
|
|
||||||
|
|
||||||
// Destroy and deallocate the functor
|
// Destroy and deallocate the functor
|
||||||
allocator.destroy(victim);
|
allocator.destroy(victim);
|
||||||
allocator.deallocate(victim, 1);
|
allocator.deallocate(victim, 1);
|
||||||
@ -285,22 +277,19 @@ namespace boost {
|
|||||||
detail::function::any_pointer functor;
|
detail::function::any_pointer functor;
|
||||||
#endif // BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
|
#endif // BOOST_FUNCTION_USE_VIRTUAL_FUNCTIONS
|
||||||
|
|
||||||
#ifndef BOOST_WEAK_CONVERSION_OPERATORS
|
|
||||||
private:
|
private:
|
||||||
struct dummy {
|
struct dummy {
|
||||||
void nonnull() {};
|
void nonnull() {};
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef void (dummy::*safe_bool)();
|
typedef void (dummy::*safe_bool)();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
operator safe_bool () const
|
operator safe_bool () const
|
||||||
{
|
{ return (this->empty())? 0 : &dummy::nonnull; }
|
||||||
return (this->empty())? 0 : &dummy::nonnull;
|
|
||||||
}
|
safe_bool operator!() const
|
||||||
#else
|
{ return (this->empty())? &dummy::nonnull : 0; }
|
||||||
public:
|
|
||||||
operator bool() const { return !this->empty(); }
|
|
||||||
#endif // BOOST_WEAK_CONVERSION_OPERATORS
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Poison comparison between Boost.Function objects (because it is
|
/* Poison comparison between Boost.Function objects (because it is
|
||||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user