mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-04 15:24:29 +02:00
fixes from main trunk
[SVN r15804]
This commit is contained in:
@@ -215,13 +215,6 @@ struct BOOST_PP_CAT(apply,i)
|
|||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
||||||
//: workaround for ETI bug
|
|
||||||
template<>
|
|
||||||
struct BOOST_PP_CAT(apply,i)<AUX_APPLY_N_SPEC_PARAMS(i, int)>
|
|
||||||
{
|
|
||||||
typedef BOOST_PP_CAT(apply,i) type;
|
|
||||||
};
|
|
||||||
|
|
||||||
# elif defined(BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES)
|
# elif defined(BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES)
|
||||||
// MWCW/Borland version
|
// MWCW/Borland version
|
||||||
|
|
||||||
@@ -263,6 +256,15 @@ struct BOOST_PP_CAT(apply,i)
|
|||||||
|
|
||||||
# endif // workarounds
|
# endif // workarounds
|
||||||
|
|
||||||
|
#if defined(BOOST_MPL_MSVC_ETI_BUG)
|
||||||
|
//: workaround for ETI bug
|
||||||
|
template<>
|
||||||
|
struct BOOST_PP_CAT(apply,i)<AUX_APPLY_N_SPEC_PARAMS(i, int)>
|
||||||
|
{
|
||||||
|
typedef BOOST_PP_CAT(apply,i) type;
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
||||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||||
template<>
|
template<>
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
# include "boost/mpl/arg_fwd.hpp"
|
# include "boost/mpl/arg_fwd.hpp"
|
||||||
# include "boost/mpl/void.hpp"
|
# include "boost/mpl/void.hpp"
|
||||||
# include "boost/mpl/aux_/arity_spec.hpp"
|
# include "boost/mpl/aux_/arity_spec.hpp"
|
||||||
|
# include "boost/mpl/aux_/arg_typedef.hpp"
|
||||||
# include "boost/static_assert.hpp"
|
# include "boost/static_assert.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -95,9 +96,7 @@ template<> struct arg<i>
|
|||||||
{
|
{
|
||||||
BOOST_STATIC_CONSTANT(int, value = i);
|
BOOST_STATIC_CONSTANT(int, value = i);
|
||||||
typedef arg<BOOST_PP_INC(i)> next;
|
typedef arg<BOOST_PP_INC(i)> next;
|
||||||
#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
typedef void_ tag;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
AUX_ARG_N_DEFAULT_PARAMS(typename U, void_)
|
AUX_ARG_N_DEFAULT_PARAMS(typename U, void_)
|
||||||
@@ -118,9 +117,7 @@ template<> struct arg<i>
|
|||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
BOOST_STATIC_CONSTANT(int, value = -1);
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
typedef void_ tag;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
AUX_ARG_N_DEFAULT_PARAMS(typename U, void_)
|
AUX_ARG_N_DEFAULT_PARAMS(typename U, void_)
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#if defined(BOOST_MPL_USE_APPLY_INTERNALLY) \
|
#if defined(BOOST_MPL_USE_APPLY_INTERNALLY) \
|
||||||
|| defined(BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) \
|
|| defined(BOOST_BROKEN_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) \
|
||||||
|| (defined(BOOST_MSVC) && (BOOST_MSVC <= 1300))
|
|| defined(BOOST_MSVC) && (BOOST_MSVC < 1300 || BOOST_MSVC == 1300 && defined(BOOST_MPL_PREPROCESSING_MODE))
|
||||||
|
|
||||||
# if !defined(BOOST_MPL_PREPROCESSING_MODE)
|
# if !defined(BOOST_MPL_PREPROCESSING_MODE)
|
||||||
# include "boost/mpl/apply.hpp"
|
# include "boost/mpl/apply.hpp"
|
||||||
|
@@ -39,4 +39,3 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
|
#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED
|
||||||
|
|
||||||
|
@@ -6,9 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
static int const value = -1;
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
typedef void_ tag;
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1, typename U2, typename U3, typename U4, typename U5
|
typename U1, typename U2, typename U3, typename U4, typename U5
|
||||||
@@ -21,9 +20,9 @@ template<> struct arg<-1>
|
|||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
static int const value = 1;
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1, typename U2, typename U3, typename U4, typename U5
|
typename U1, typename U2, typename U3, typename U4, typename U5
|
||||||
@@ -36,9 +35,9 @@ template<> struct arg<1>
|
|||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
static int const value = 2;
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1, typename U2, typename U3, typename U4, typename U5
|
typename U1, typename U2, typename U3, typename U4, typename U5
|
||||||
@@ -51,9 +50,9 @@ template<> struct arg<2>
|
|||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
static int const value = 3;
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1, typename U2, typename U3, typename U4, typename U5
|
typename U1, typename U2, typename U3, typename U4, typename U5
|
||||||
@@ -66,9 +65,9 @@ template<> struct arg<3>
|
|||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
static int const value = 4;
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1, typename U2, typename U3, typename U4, typename U5
|
typename U1, typename U2, typename U3, typename U4, typename U5
|
||||||
@@ -81,9 +80,9 @@ template<> struct arg<4>
|
|||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
static int const value = 5;
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1, typename U2, typename U3, typename U4, typename U5
|
typename U1, typename U2, typename U3, typename U4, typename U5
|
||||||
|
@@ -27,7 +27,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename apply5< arg<N>,U1,U2,U3,U4,U5 >::type type;
|
typedef typename apply5<mpl::arg< N>,U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -46,7 +46,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename apply5< arg<N>,U1,U2,U3,U4,U5 >::type type;
|
typedef typename apply5<mpl::arg< N>,U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -85,7 +85,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -124,7 +124,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -168,7 +168,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -217,7 +217,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -271,7 +271,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -331,7 +331,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 1;
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 2;
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 3;
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 4;
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 5;
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -6,9 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
static int const value = -1;
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
typedef void_ tag;
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -22,9 +21,9 @@ template<> struct arg<-1>
|
|||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
static int const value = 1;
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -38,9 +37,9 @@ template<> struct arg<1>
|
|||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
static int const value = 2;
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -54,9 +53,9 @@ template<> struct arg<2>
|
|||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
static int const value = 3;
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -70,9 +69,9 @@ template<> struct arg<3>
|
|||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
static int const value = 4;
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -86,9 +85,9 @@ template<> struct arg<4>
|
|||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
static int const value = 5;
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
|
@@ -27,7 +27,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename apply5< arg<N>,U1,U2,U3,U4,U5 >::type type;
|
typedef typename apply5<mpl::arg< N>,U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -46,7 +46,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename apply5< arg<N>,U1,U2,U3,U4,U5 >::type type;
|
typedef typename apply5<mpl::arg< N>,U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -86,7 +86,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -126,7 +126,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -171,7 +171,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -221,7 +221,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -276,7 +276,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -337,7 +337,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 1;
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 2;
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 3;
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 4;
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 5;
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -6,7 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
static int const value = -1;
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -15,15 +16,19 @@ template<> struct arg<-1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
static int const value = 1;
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -32,15 +37,19 @@ template<> struct arg<1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
static int const value = 2;
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -49,15 +58,19 @@ template<> struct arg<2>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U2 type;
|
typedef U2 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
static int const value = 3;
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -66,15 +79,19 @@ template<> struct arg<3>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U3 type;
|
typedef U3 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
static int const value = 4;
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -83,15 +100,19 @@ template<> struct arg<4>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U4 type;
|
typedef U4 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
static int const value = 5;
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -100,7 +121,10 @@ template<> struct arg<5>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U5 type;
|
typedef U5 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -33,7 +33,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename arg<N>::template apply< U1,U2,U3,U4,U5 >::type type;
|
typedef typename mpl::arg<N>::template apply< U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -52,7 +52,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename arg<N>::template apply< U1,U2,U3,U4,U5 >::type type;
|
typedef typename mpl::arg<N>::template apply< U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -108,7 +108,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -156,7 +156,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -209,7 +209,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -267,7 +267,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -330,7 +330,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -399,7 +399,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 1;
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 2;
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 3;
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 4;
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 5;
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -6,9 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
enum { value = -1 };
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
typedef void_ tag;
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -17,16 +16,19 @@ template<> struct arg<-1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
enum { value = 1 };
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -35,16 +37,19 @@ template<> struct arg<1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
enum { value = 2 };
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -53,16 +58,19 @@ template<> struct arg<2>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U2 type;
|
typedef U2 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
enum { value = 3 };
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -71,16 +79,19 @@ template<> struct arg<3>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U3 type;
|
typedef U3 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
enum { value = 4 };
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -89,16 +100,19 @@ template<> struct arg<4>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U4 type;
|
typedef U4 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
enum { value = 5 };
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -107,7 +121,10 @@ template<> struct arg<5>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U5 type;
|
typedef U5 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -64,10 +64,9 @@ template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*);
|
|||||||
|
|
||||||
template< typename T > struct is_bind_template
|
template< typename T > struct is_bind_template
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(bool, value = sizeof(aux::is_bind_helper(static_cast<T*>(0)))
|
||||||
sizeof(aux::is_bind_helper(static_cast<T*>(0))) ==
|
== sizeof(aux::yes_tag)
|
||||||
sizeof(aux::yes_tag)
|
);
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
|
@@ -90,10 +90,9 @@ template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*);
|
|||||||
|
|
||||||
template< typename T > struct is_bind_template
|
template< typename T > struct is_bind_template
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(bool, value = sizeof(aux::is_bind_helper(static_cast<T*>(0)))
|
||||||
sizeof(aux::is_bind_helper(static_cast<T*>(0))) ==
|
== sizeof(aux::yes_tag)
|
||||||
sizeof(aux::yes_tag)
|
);
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
@@ -113,7 +112,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -147,7 +146,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -186,7 +185,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -230,7 +229,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -279,7 +278,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -334,7 +333,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 1 };
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 2 };
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 3 };
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 4 };
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 5 };
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -222,13 +222,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_list_arg
|
struct is_list_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_list_arg<void_>
|
struct is_list_arg<void_>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -237,13 +237,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct list_count_args
|
struct list_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_list_arg<T1>::value + is_list_arg<T2>::value + is_list_arg<T3>::value + is_list_arg<T4>::value + is_list_arg<T5>::value + is_list_arg<T6>::value + is_list_arg<T7>::value + is_list_arg<T8>::value + is_list_arg<T9>::value + is_list_arg<T10>::value);
|
||||||
is_list_arg<T1>::value + is_list_arg<T2>::value
|
|
||||||
+ is_list_arg<T3>::value + is_list_arg<T4>::value
|
|
||||||
+ is_list_arg<T5>::value + is_list_arg<T6>::value
|
|
||||||
+ is_list_arg<T7>::value + is_list_arg<T8>::value
|
|
||||||
+ is_list_arg<T9>::value + is_list_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -233,13 +233,13 @@ namespace aux {
|
|||||||
template< long T >
|
template< long T >
|
||||||
struct is_list_c_arg
|
struct is_list_c_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_list_c_arg<LONG_MAX>
|
struct is_list_c_arg<LONG_MAX>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -248,13 +248,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct list_c_count_args
|
struct list_c_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_list_c_arg<T1>::value + is_list_c_arg<T2>::value + is_list_c_arg<T3>::value + is_list_c_arg<T4>::value + is_list_c_arg<T5>::value + is_list_c_arg<T6>::value + is_list_c_arg<T7>::value + is_list_c_arg<T8>::value + is_list_c_arg<T9>::value + is_list_c_arg<T10>::value);
|
||||||
is_list_c_arg<T1>::value + is_list_c_arg<T2>::value
|
|
||||||
+ is_list_c_arg<T3>::value + is_list_c_arg<T4>::value
|
|
||||||
+ is_list_c_arg<T5>::value + is_list_c_arg<T6>::value
|
|
||||||
+ is_list_c_arg<T7>::value + is_list_c_arg<T8>::value
|
|
||||||
+ is_list_c_arg<T9>::value + is_list_c_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -222,13 +222,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_vector_arg
|
struct is_vector_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_vector_arg<void_>
|
struct is_vector_arg<void_>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -237,13 +237,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct vector_count_args
|
struct vector_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_vector_arg<T1>::value + is_vector_arg<T2>::value + is_vector_arg<T3>::value + is_vector_arg<T4>::value + is_vector_arg<T5>::value + is_vector_arg<T6>::value + is_vector_arg<T7>::value + is_vector_arg<T8>::value + is_vector_arg<T9>::value + is_vector_arg<T10>::value);
|
||||||
is_vector_arg<T1>::value + is_vector_arg<T2>::value
|
|
||||||
+ is_vector_arg<T3>::value + is_vector_arg<T4>::value
|
|
||||||
+ is_vector_arg<T5>::value + is_vector_arg<T6>::value
|
|
||||||
+ is_vector_arg<T7>::value + is_vector_arg<T8>::value
|
|
||||||
+ is_vector_arg<T9>::value + is_vector_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -233,13 +233,13 @@ namespace aux {
|
|||||||
template< long T >
|
template< long T >
|
||||||
struct is_vector_c_arg
|
struct is_vector_c_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_vector_c_arg<LONG_MAX>
|
struct is_vector_c_arg<LONG_MAX>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -248,13 +248,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct vector_c_count_args
|
struct vector_c_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_vector_c_arg<T1>::value + is_vector_c_arg<T2>::value + is_vector_c_arg<T3>::value + is_vector_c_arg<T4>::value + is_vector_c_arg<T5>::value + is_vector_c_arg<T6>::value + is_vector_c_arg<T7>::value + is_vector_c_arg<T8>::value + is_vector_c_arg<T9>::value + is_vector_c_arg<T10>::value);
|
||||||
is_vector_c_arg<T1>::value + is_vector_c_arg<T2>::value
|
|
||||||
+ is_vector_c_arg<T3>::value + is_vector_c_arg<T4>::value
|
|
||||||
+ is_vector_c_arg<T5>::value + is_vector_c_arg<T6>::value
|
|
||||||
+ is_vector_c_arg<T7>::value + is_vector_c_arg<T8>::value
|
|
||||||
+ is_vector_c_arg<T9>::value + is_vector_c_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -263,13 +263,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_apply_arg
|
struct is_apply_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_apply_arg<void_>
|
struct is_apply_arg<void_>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -277,11 +277,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct apply_count_args
|
struct apply_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_apply_arg<T1>::value + is_apply_arg<T2>::value + is_apply_arg<T3>::value + is_apply_arg<T4>::value + is_apply_arg<T5>::value);
|
||||||
is_apply_arg<T1>::value + is_apply_arg<T2>::value
|
|
||||||
+ is_apply_arg<T3>::value + is_apply_arg<T4>::value
|
|
||||||
+ is_apply_arg<T5>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
|
@@ -6,9 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
enum { value = -1 };
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
typedef void_ tag;
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -17,16 +16,19 @@ template<> struct arg<-1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
enum { value = 1 };
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -35,16 +37,19 @@ template<> struct arg<1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
enum { value = 2 };
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -53,16 +58,19 @@ template<> struct arg<2>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U2 type;
|
typedef U2 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
enum { value = 3 };
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -71,16 +79,19 @@ template<> struct arg<3>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U3 type;
|
typedef U3 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
enum { value = 4 };
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -89,16 +100,19 @@ template<> struct arg<4>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U4 type;
|
typedef U4 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
enum { value = 5 };
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -107,7 +121,10 @@ template<> struct arg<5>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U5 type;
|
typedef U5 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -64,10 +64,9 @@ template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*);
|
|||||||
|
|
||||||
template< typename T > struct is_bind_template
|
template< typename T > struct is_bind_template
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(bool, value = sizeof(aux::is_bind_helper(static_cast<T*>(0)))
|
||||||
sizeof(aux::is_bind_helper(static_cast<T*>(0))) ==
|
== sizeof(aux::yes_tag)
|
||||||
sizeof(aux::yes_tag)
|
);
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
|
@@ -90,10 +90,9 @@ template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*);
|
|||||||
|
|
||||||
template< typename T > struct is_bind_template
|
template< typename T > struct is_bind_template
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(bool, value = sizeof(aux::is_bind_helper(static_cast<T*>(0)))
|
||||||
sizeof(aux::is_bind_helper(static_cast<T*>(0))) ==
|
== sizeof(aux::yes_tag)
|
||||||
sizeof(aux::yes_tag)
|
);
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
@@ -113,7 +112,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -147,7 +146,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -186,7 +185,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -230,7 +229,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -279,7 +278,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -334,7 +333,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 1 };
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 2 };
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 3 };
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 4 };
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
enum { arity = 5 };
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -222,13 +222,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_list_arg
|
struct is_list_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_list_arg<void_>
|
struct is_list_arg<void_>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -237,13 +237,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct list_count_args
|
struct list_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_list_arg<T1>::value + is_list_arg<T2>::value + is_list_arg<T3>::value + is_list_arg<T4>::value + is_list_arg<T5>::value + is_list_arg<T6>::value + is_list_arg<T7>::value + is_list_arg<T8>::value + is_list_arg<T9>::value + is_list_arg<T10>::value);
|
||||||
is_list_arg<T1>::value + is_list_arg<T2>::value
|
|
||||||
+ is_list_arg<T3>::value + is_list_arg<T4>::value
|
|
||||||
+ is_list_arg<T5>::value + is_list_arg<T6>::value
|
|
||||||
+ is_list_arg<T7>::value + is_list_arg<T8>::value
|
|
||||||
+ is_list_arg<T9>::value + is_list_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -233,13 +233,13 @@ namespace aux {
|
|||||||
template< long T >
|
template< long T >
|
||||||
struct is_list_c_arg
|
struct is_list_c_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_list_c_arg<LONG_MAX>
|
struct is_list_c_arg<LONG_MAX>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -248,13 +248,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct list_c_count_args
|
struct list_c_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_list_c_arg<T1>::value + is_list_c_arg<T2>::value + is_list_c_arg<T3>::value + is_list_c_arg<T4>::value + is_list_c_arg<T5>::value + is_list_c_arg<T6>::value + is_list_c_arg<T7>::value + is_list_c_arg<T8>::value + is_list_c_arg<T9>::value + is_list_c_arg<T10>::value);
|
||||||
is_list_c_arg<T1>::value + is_list_c_arg<T2>::value
|
|
||||||
+ is_list_c_arg<T3>::value + is_list_c_arg<T4>::value
|
|
||||||
+ is_list_c_arg<T5>::value + is_list_c_arg<T6>::value
|
|
||||||
+ is_list_c_arg<T7>::value + is_list_c_arg<T8>::value
|
|
||||||
+ is_list_c_arg<T9>::value + is_list_c_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -222,13 +222,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_vector_arg
|
struct is_vector_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_vector_arg<void_>
|
struct is_vector_arg<void_>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -237,13 +237,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct vector_count_args
|
struct vector_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_vector_arg<T1>::value + is_vector_arg<T2>::value + is_vector_arg<T3>::value + is_vector_arg<T4>::value + is_vector_arg<T5>::value + is_vector_arg<T6>::value + is_vector_arg<T7>::value + is_vector_arg<T8>::value + is_vector_arg<T9>::value + is_vector_arg<T10>::value);
|
||||||
is_vector_arg<T1>::value + is_vector_arg<T2>::value
|
|
||||||
+ is_vector_arg<T3>::value + is_vector_arg<T4>::value
|
|
||||||
+ is_vector_arg<T5>::value + is_vector_arg<T6>::value
|
|
||||||
+ is_vector_arg<T7>::value + is_vector_arg<T8>::value
|
|
||||||
+ is_vector_arg<T9>::value + is_vector_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -233,13 +233,13 @@ namespace aux {
|
|||||||
template< long T >
|
template< long T >
|
||||||
struct is_vector_c_arg
|
struct is_vector_c_arg
|
||||||
{
|
{
|
||||||
enum { value = true };
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_vector_c_arg<LONG_MAX>
|
struct is_vector_c_arg<LONG_MAX>
|
||||||
{
|
{
|
||||||
enum { value = false };
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -248,13 +248,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct vector_c_count_args
|
struct vector_c_count_args
|
||||||
{
|
{
|
||||||
enum { value =
|
BOOST_STATIC_CONSTANT(int, value = is_vector_c_arg<T1>::value + is_vector_c_arg<T2>::value + is_vector_c_arg<T3>::value + is_vector_c_arg<T4>::value + is_vector_c_arg<T5>::value + is_vector_c_arg<T6>::value + is_vector_c_arg<T7>::value + is_vector_c_arg<T8>::value + is_vector_c_arg<T9>::value + is_vector_c_arg<T10>::value);
|
||||||
is_vector_c_arg<T1>::value + is_vector_c_arg<T2>::value
|
|
||||||
+ is_vector_c_arg<T3>::value + is_vector_c_arg<T4>::value
|
|
||||||
+ is_vector_c_arg<T5>::value + is_vector_c_arg<T6>::value
|
|
||||||
+ is_vector_c_arg<T7>::value + is_vector_c_arg<T8>::value
|
|
||||||
+ is_vector_c_arg<T9>::value + is_vector_c_arg<T10>::value
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -6,7 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
static int const value = -1;
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -15,15 +16,19 @@ template<> struct arg<-1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
static int const value = 1;
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -32,15 +37,19 @@ template<> struct arg<1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
static int const value = 2;
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -49,15 +58,19 @@ template<> struct arg<2>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U2 type;
|
typedef U2 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
static int const value = 3;
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -66,15 +79,19 @@ template<> struct arg<3>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U3 type;
|
typedef U3 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
static int const value = 4;
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -83,15 +100,19 @@ template<> struct arg<4>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U4 type;
|
typedef U4 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
static int const value = 5;
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -100,7 +121,10 @@ template<> struct arg<5>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U5 type;
|
typedef U5 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -33,7 +33,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename apply5< arg<N>,U1,U2,U3,U4,U5 >::type type;
|
typedef typename apply5<mpl::arg< N>,U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -52,7 +52,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename apply5< arg<N>,U1,U2,U3,U4,U5 >::type type;
|
typedef typename apply5<mpl::arg< N>,U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -108,7 +108,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -156,7 +156,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -209,7 +209,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -267,7 +267,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -330,7 +330,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -399,7 +399,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 1;
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 2;
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 3;
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 4;
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 5;
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -263,13 +263,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_apply_arg
|
struct is_apply_arg
|
||||||
{
|
{
|
||||||
static bool const value = true;
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_apply_arg<void_>
|
struct is_apply_arg<void_>
|
||||||
{
|
{
|
||||||
static bool const value = false;
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -277,11 +277,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct apply_count_args
|
struct apply_count_args
|
||||||
{
|
{
|
||||||
static int const value =
|
BOOST_STATIC_CONSTANT(int, value = is_apply_arg<T1>::value + is_apply_arg<T2>::value + is_apply_arg<T3>::value + is_apply_arg<T4>::value + is_apply_arg<T5>::value);
|
||||||
is_apply_arg<T1>::value + is_apply_arg<T2>::value
|
|
||||||
+ is_apply_arg<T3>::value + is_apply_arg<T4>::value
|
|
||||||
+ is_apply_arg<T5>::value
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
|
@@ -6,9 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
static int const value = -1;
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
typedef void_ tag;
|
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -17,16 +16,19 @@ template<> struct arg<-1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
static int const value = 1;
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -35,16 +37,19 @@ template<> struct arg<1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
static int const value = 2;
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -53,16 +58,19 @@ template<> struct arg<2>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U2 type;
|
typedef U2 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
static int const value = 3;
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -71,16 +79,19 @@ template<> struct arg<3>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U3 type;
|
typedef U3 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
static int const value = 4;
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -89,16 +100,19 @@ template<> struct arg<4>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U4 type;
|
typedef U4 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
static int const value = 5;
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
typedef void_ tag;
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -107,7 +121,10 @@ template<> struct arg<5>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U5 type;
|
typedef U5 type;
|
||||||
BOOST_STATIC_ASSERT(!is_void_<type>::value);
|
|
||||||
|
private:
|
||||||
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -76,10 +76,9 @@ template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*);
|
|||||||
|
|
||||||
template< typename T > struct is_bind_template
|
template< typename T > struct is_bind_template
|
||||||
{
|
{
|
||||||
static bool const value =
|
BOOST_STATIC_CONSTANT(bool, value = sizeof(aux::is_bind_helper(static_cast<T*>(0)))
|
||||||
sizeof(aux::is_bind_helper(static_cast<T*>(0))) ==
|
== sizeof(aux::yes_tag)
|
||||||
sizeof(aux::yes_tag)
|
);
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
@@ -402,13 +401,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_bind_arg
|
struct is_bind_arg
|
||||||
{
|
{
|
||||||
static bool const value = true;
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_bind_arg<void_>
|
struct is_bind_arg<void_>
|
||||||
{
|
{
|
||||||
static bool const value = false;
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -416,11 +415,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct bind_count_args
|
struct bind_count_args
|
||||||
{
|
{
|
||||||
static int const value =
|
BOOST_STATIC_CONSTANT(int, value = is_bind_arg<T1>::value + is_bind_arg<T2>::value + is_bind_arg<T3>::value + is_bind_arg<T4>::value + is_bind_arg<T5>::value);
|
||||||
is_bind_arg<T1>::value + is_bind_arg<T2>::value
|
|
||||||
+ is_bind_arg<T3>::value + is_bind_arg<T4>::value
|
|
||||||
+ is_bind_arg<T5>::value
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -102,10 +102,9 @@ template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*);
|
|||||||
|
|
||||||
template< typename T > struct is_bind_template
|
template< typename T > struct is_bind_template
|
||||||
{
|
{
|
||||||
static bool const value =
|
BOOST_STATIC_CONSTANT(bool, value = sizeof(aux::is_bind_helper(static_cast<T*>(0)))
|
||||||
sizeof(aux::is_bind_helper(static_cast<T*>(0))) ==
|
== sizeof(aux::yes_tag)
|
||||||
sizeof(aux::yes_tag)
|
);
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace aux
|
} // namespace aux
|
||||||
@@ -130,7 +129,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -181,7 +180,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -237,7 +236,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -298,7 +297,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -364,7 +363,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -436,7 +435,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -506,13 +505,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_bind_arg
|
struct is_bind_arg
|
||||||
{
|
{
|
||||||
static bool const value = true;
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_bind_arg<void_>
|
struct is_bind_arg<void_>
|
||||||
{
|
{
|
||||||
static bool const value = false;
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -520,11 +519,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct bind_count_args
|
struct bind_count_args
|
||||||
{
|
{
|
||||||
static int const value =
|
BOOST_STATIC_CONSTANT(int, value = is_bind_arg<T1>::value + is_bind_arg<T2>::value + is_bind_arg<T3>::value + is_bind_arg<T4>::value + is_bind_arg<T5>::value);
|
||||||
is_bind_arg<T1>::value + is_bind_arg<T2>::value
|
|
||||||
+ is_bind_arg<T3>::value + is_bind_arg<T4>::value
|
|
||||||
+ is_bind_arg<T5>::value
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 1;
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 2;
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 3;
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 4;
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 5;
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -222,13 +222,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_list_arg
|
struct is_list_arg
|
||||||
{
|
{
|
||||||
static bool const value = true;
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_list_arg<void_>
|
struct is_list_arg<void_>
|
||||||
{
|
{
|
||||||
static bool const value = false;
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -237,13 +237,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct list_count_args
|
struct list_count_args
|
||||||
{
|
{
|
||||||
static int const value =
|
BOOST_STATIC_CONSTANT(int, value = is_list_arg<T1>::value + is_list_arg<T2>::value + is_list_arg<T3>::value + is_list_arg<T4>::value + is_list_arg<T5>::value + is_list_arg<T6>::value + is_list_arg<T7>::value + is_list_arg<T8>::value + is_list_arg<T9>::value + is_list_arg<T10>::value);
|
||||||
is_list_arg<T1>::value + is_list_arg<T2>::value
|
|
||||||
+ is_list_arg<T3>::value + is_list_arg<T4>::value
|
|
||||||
+ is_list_arg<T5>::value + is_list_arg<T6>::value
|
|
||||||
+ is_list_arg<T7>::value + is_list_arg<T8>::value
|
|
||||||
+ is_list_arg<T9>::value + is_list_arg<T10>::value
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -233,13 +233,13 @@ namespace aux {
|
|||||||
template< long T >
|
template< long T >
|
||||||
struct is_list_c_arg
|
struct is_list_c_arg
|
||||||
{
|
{
|
||||||
static bool const value = true;
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_list_c_arg<LONG_MAX>
|
struct is_list_c_arg<LONG_MAX>
|
||||||
{
|
{
|
||||||
static bool const value = false;
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -248,13 +248,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct list_c_count_args
|
struct list_c_count_args
|
||||||
{
|
{
|
||||||
static int const value =
|
BOOST_STATIC_CONSTANT(int, value = is_list_c_arg<T1>::value + is_list_c_arg<T2>::value + is_list_c_arg<T3>::value + is_list_c_arg<T4>::value + is_list_c_arg<T5>::value + is_list_c_arg<T6>::value + is_list_c_arg<T7>::value + is_list_c_arg<T8>::value + is_list_c_arg<T9>::value + is_list_c_arg<T10>::value);
|
||||||
is_list_c_arg<T1>::value + is_list_c_arg<T2>::value
|
|
||||||
+ is_list_c_arg<T3>::value + is_list_c_arg<T4>::value
|
|
||||||
+ is_list_c_arg<T5>::value + is_list_c_arg<T6>::value
|
|
||||||
+ is_list_c_arg<T7>::value + is_list_c_arg<T8>::value
|
|
||||||
+ is_list_c_arg<T9>::value + is_list_c_arg<T10>::value
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -222,13 +222,13 @@ namespace aux {
|
|||||||
template< typename T >
|
template< typename T >
|
||||||
struct is_vector_arg
|
struct is_vector_arg
|
||||||
{
|
{
|
||||||
static bool const value = true;
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_vector_arg<void_>
|
struct is_vector_arg<void_>
|
||||||
{
|
{
|
||||||
static bool const value = false;
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -237,13 +237,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct vector_count_args
|
struct vector_count_args
|
||||||
{
|
{
|
||||||
static int const value =
|
BOOST_STATIC_CONSTANT(int, value = is_vector_arg<T1>::value + is_vector_arg<T2>::value + is_vector_arg<T3>::value + is_vector_arg<T4>::value + is_vector_arg<T5>::value + is_vector_arg<T6>::value + is_vector_arg<T7>::value + is_vector_arg<T8>::value + is_vector_arg<T9>::value + is_vector_arg<T10>::value);
|
||||||
is_vector_arg<T1>::value + is_vector_arg<T2>::value
|
|
||||||
+ is_vector_arg<T3>::value + is_vector_arg<T4>::value
|
|
||||||
+ is_vector_arg<T5>::value + is_vector_arg<T6>::value
|
|
||||||
+ is_vector_arg<T7>::value + is_vector_arg<T8>::value
|
|
||||||
+ is_vector_arg<T9>::value + is_vector_arg<T10>::value
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -233,13 +233,13 @@ namespace aux {
|
|||||||
template< long T >
|
template< long T >
|
||||||
struct is_vector_c_arg
|
struct is_vector_c_arg
|
||||||
{
|
{
|
||||||
static bool const value = true;
|
BOOST_STATIC_CONSTANT(bool, value = true);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct is_vector_c_arg<LONG_MAX>
|
struct is_vector_c_arg<LONG_MAX>
|
||||||
{
|
{
|
||||||
static bool const value = false;
|
BOOST_STATIC_CONSTANT(bool, value = false);
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
@@ -248,13 +248,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct vector_c_count_args
|
struct vector_c_count_args
|
||||||
{
|
{
|
||||||
static int const value =
|
BOOST_STATIC_CONSTANT(int, value = is_vector_c_arg<T1>::value + is_vector_c_arg<T2>::value + is_vector_c_arg<T3>::value + is_vector_c_arg<T4>::value + is_vector_c_arg<T5>::value + is_vector_c_arg<T6>::value + is_vector_c_arg<T7>::value + is_vector_c_arg<T8>::value + is_vector_c_arg<T9>::value + is_vector_c_arg<T10>::value);
|
||||||
is_vector_c_arg<T1>::value + is_vector_c_arg<T2>::value
|
|
||||||
+ is_vector_c_arg<T3>::value + is_vector_c_arg<T4>::value
|
|
||||||
+ is_vector_c_arg<T5>::value + is_vector_c_arg<T6>::value
|
|
||||||
+ is_vector_c_arg<T7>::value + is_vector_c_arg<T8>::value
|
|
||||||
+ is_vector_c_arg<T9>::value + is_vector_c_arg<T10>::value
|
|
||||||
;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -6,7 +6,8 @@ namespace mpl {
|
|||||||
|
|
||||||
template<> struct arg<-1>
|
template<> struct arg<-1>
|
||||||
{
|
{
|
||||||
static int const value = -1;
|
BOOST_STATIC_CONSTANT(int, value = -1);
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -15,16 +16,19 @@ template<> struct arg<-1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
BOOST_STATIC_ASSERT(nv);
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<1>
|
template<> struct arg<1>
|
||||||
{
|
{
|
||||||
static int const value = 1;
|
BOOST_STATIC_CONSTANT(int, value = 1);
|
||||||
typedef arg<2> next;
|
typedef arg<2> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -33,16 +37,19 @@ template<> struct arg<1>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U1 type;
|
typedef U1 type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
BOOST_STATIC_ASSERT(nv);
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<2>
|
template<> struct arg<2>
|
||||||
{
|
{
|
||||||
static int const value = 2;
|
BOOST_STATIC_CONSTANT(int, value = 2);
|
||||||
typedef arg<3> next;
|
typedef arg<3> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -51,16 +58,19 @@ template<> struct arg<2>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U2 type;
|
typedef U2 type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
BOOST_STATIC_ASSERT(nv);
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<3>
|
template<> struct arg<3>
|
||||||
{
|
{
|
||||||
static int const value = 3;
|
BOOST_STATIC_CONSTANT(int, value = 3);
|
||||||
typedef arg<4> next;
|
typedef arg<4> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -69,16 +79,19 @@ template<> struct arg<3>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U3 type;
|
typedef U3 type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
BOOST_STATIC_ASSERT(nv);
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<4>
|
template<> struct arg<4>
|
||||||
{
|
{
|
||||||
static int const value = 4;
|
BOOST_STATIC_CONSTANT(int, value = 4);
|
||||||
typedef arg<5> next;
|
typedef arg<5> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -87,16 +100,19 @@ template<> struct arg<4>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U4 type;
|
typedef U4 type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
BOOST_STATIC_ASSERT(nv);
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
template<> struct arg<5>
|
template<> struct arg<5>
|
||||||
{
|
{
|
||||||
static int const value = 5;
|
BOOST_STATIC_CONSTANT(int, value = 5);
|
||||||
typedef arg<6> next;
|
typedef arg<6> next;
|
||||||
|
BOOST_MPL_AUX_ARG_TYPEDEF(void_, tag)
|
||||||
|
|
||||||
template<
|
template<
|
||||||
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
typename U1 = void_, typename U2 = void_, typename U3 = void_
|
||||||
@@ -105,9 +121,11 @@ template<> struct arg<5>
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
typedef U5 type;
|
typedef U5 type;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
BOOST_STATIC_CONSTANT(bool, nv = !is_void_<type>::value);
|
||||||
BOOST_STATIC_ASSERT(nv);
|
BOOST_STATIC_ASSERT(nv);
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -33,7 +33,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
struct resolve_bind_arg< arg<N>,U1,U2,U3,U4,U5 >
|
||||||
{
|
{
|
||||||
typedef typename arg<N>::template apply< U1,U2,U3,U4,U5 >::type type;
|
typedef typename mpl::arg<N>::template apply< U1,U2,U3,U4,U5 >::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<
|
template<
|
||||||
|
@@ -108,7 +108,7 @@ struct bind0
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -156,7 +156,7 @@ struct bind1
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -209,7 +209,7 @@ struct bind2
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -267,7 +267,7 @@ struct bind3
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -330,7 +330,7 @@ struct bind4
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
@@ -399,7 +399,7 @@ struct bind5
|
|||||||
struct apply
|
struct apply
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F, mpl::arg< 1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
|
||||||
|
@@ -12,7 +12,7 @@ struct lambda_helper1
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 1;
|
BOOST_STATIC_CONSTANT(int, arity = 1);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
|
|
||||||
template< typename U1 > struct apply
|
template< typename U1 > struct apply
|
||||||
@@ -30,7 +30,7 @@ struct lambda_helper2
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 2;
|
BOOST_STATIC_CONSTANT(int, arity = 2);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ struct lambda_helper3
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 3;
|
BOOST_STATIC_CONSTANT(int, arity = 3);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -69,7 +69,7 @@ struct lambda_helper4
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 4;
|
BOOST_STATIC_CONSTANT(int, arity = 4);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
@@ -97,7 +97,7 @@ struct lambda_helper5
|
|||||||
{
|
{
|
||||||
struct rebind
|
struct rebind
|
||||||
{
|
{
|
||||||
static int const arity = 5;
|
BOOST_STATIC_CONSTANT(int, arity = 5);
|
||||||
typedef T1 arg1;
|
typedef T1 arg1;
|
||||||
typedef T2 arg2;
|
typedef T2 arg2;
|
||||||
typedef T3 arg3;
|
typedef T3 arg3;
|
||||||
|
@@ -17,12 +17,14 @@
|
|||||||
#ifndef BOOST_MPL_AUX_VOID_SPEC_HPP_INCLUDED
|
#ifndef BOOST_MPL_AUX_VOID_SPEC_HPP_INCLUDED
|
||||||
#define BOOST_MPL_AUX_VOID_SPEC_HPP_INCLUDED
|
#define BOOST_MPL_AUX_VOID_SPEC_HPP_INCLUDED
|
||||||
|
|
||||||
|
#include "boost/mpl/lambda_fwd.hpp"
|
||||||
#include "boost/mpl/void.hpp"
|
#include "boost/mpl/void.hpp"
|
||||||
#include "boost/mpl/aux_/arity.hpp"
|
|
||||||
#include "boost/mpl/aux_/template_arity_fwd.hpp"
|
|
||||||
#include "boost/mpl/aux_/preprocessor/params.hpp"
|
#include "boost/mpl/aux_/preprocessor/params.hpp"
|
||||||
#include "boost/mpl/aux_/preprocessor/enum.hpp"
|
#include "boost/mpl/aux_/preprocessor/enum.hpp"
|
||||||
#include "boost/mpl/aux_/preprocessor/def_params_tail.hpp"
|
#include "boost/mpl/aux_/preprocessor/def_params_tail.hpp"
|
||||||
|
#include "boost/mpl/aux_/arity.hpp"
|
||||||
|
#include "boost/mpl/aux_/template_arity_fwd.hpp"
|
||||||
|
#include "boost/mpl/aux_/lambda_arity_param.hpp"
|
||||||
#include "boost/mpl/aux_/config/dtp.hpp"
|
#include "boost/mpl/aux_/config/dtp.hpp"
|
||||||
#include "boost/mpl/aux_/config/ttp.hpp"
|
#include "boost/mpl/aux_/config/ttp.hpp"
|
||||||
#include "boost/mpl/aux_/config/lambda.hpp"
|
#include "boost/mpl/aux_/config/lambda.hpp"
|
||||||
@@ -68,6 +70,30 @@ struct name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > \
|
|||||||
}; \
|
}; \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
|
#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
||||||
|
# define BOOST_MPL_AUX_VOID_SPEC_LAMBDA(i, name) \
|
||||||
|
template<> \
|
||||||
|
struct lambda< \
|
||||||
|
name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > \
|
||||||
|
, true \
|
||||||
|
> \
|
||||||
|
{ \
|
||||||
|
typedef name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > type; \
|
||||||
|
}; \
|
||||||
|
/**/
|
||||||
|
#else
|
||||||
|
# define BOOST_MPL_AUX_VOID_SPEC_LAMBDA(i, name) \
|
||||||
|
template<> \
|
||||||
|
struct lambda< \
|
||||||
|
name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > \
|
||||||
|
BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(-1) \
|
||||||
|
> \
|
||||||
|
{ \
|
||||||
|
typedef name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > type; \
|
||||||
|
}; \
|
||||||
|
/**/
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) || \
|
#if defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) || \
|
||||||
defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) && \
|
defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) && \
|
||||||
defined(BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION)
|
defined(BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION)
|
||||||
@@ -99,12 +125,14 @@ struct template_arity< \
|
|||||||
|
|
||||||
#define BOOST_MPL_AUX_VOID_SPEC(i, name) \
|
#define BOOST_MPL_AUX_VOID_SPEC(i, name) \
|
||||||
BOOST_MPL_AUX_VOID_SPEC_MAIN(i, name) \
|
BOOST_MPL_AUX_VOID_SPEC_MAIN(i, name) \
|
||||||
|
BOOST_MPL_AUX_VOID_SPEC_LAMBDA(i, name) \
|
||||||
BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) \
|
BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) \
|
||||||
BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, i, name) \
|
BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, i, name) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
#define BOOST_MPL_AUX_VOID_SPEC_EXT(i, j, name) \
|
#define BOOST_MPL_AUX_VOID_SPEC_EXT(i, j, name) \
|
||||||
BOOST_MPL_AUX_VOID_SPEC_MAIN(i, name) \
|
BOOST_MPL_AUX_VOID_SPEC_MAIN(i, name) \
|
||||||
|
BOOST_MPL_AUX_VOID_SPEC_LAMBDA(i, name) \
|
||||||
BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) \
|
BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) \
|
||||||
BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, j, name) \
|
BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, j, name) \
|
||||||
/**/
|
/**/
|
||||||
|
@@ -238,7 +238,7 @@ template<
|
|||||||
>
|
>
|
||||||
struct resolve_bind_arg< arg<N>,AUX_BIND_PARAMS(U) >
|
struct resolve_bind_arg< arg<N>,AUX_BIND_PARAMS(U) >
|
||||||
{
|
{
|
||||||
typedef typename AUX_APPLY((arg<N>, AUX_BIND_PARAMS(U)))::type type;
|
typedef typename AUX_APPLY((mpl::arg<N>, AUX_BIND_PARAMS(U)))::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined(BOOST_MPL_NO_BIND_TEMPLATE)
|
#if !defined(BOOST_MPL_NO_BIND_TEMPLATE)
|
||||||
@@ -405,7 +405,7 @@ struct BOOST_PP_CAT(bind,i)
|
|||||||
private:
|
private:
|
||||||
# if !defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT)
|
# if !defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT)
|
||||||
|
|
||||||
typedef aux::replace_unnamed_arg< F,arg<1> > r0;
|
typedef aux::replace_unnamed_arg< F,mpl::arg<1> > r0;
|
||||||
typedef typename r0::type a0;
|
typedef typename r0::type a0;
|
||||||
typedef typename r0::next_arg n1;
|
typedef typename r0::next_arg n1;
|
||||||
typedef typename aux::resolve_bind_arg<a0,AUX_BIND_PARAMS(U)>::type f_;
|
typedef typename aux::resolve_bind_arg<a0,AUX_BIND_PARAMS(U)>::type f_;
|
||||||
|
@@ -18,6 +18,7 @@
|
|||||||
#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
|
#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED
|
||||||
|
|
||||||
#include "boost/mpl/aux_/lambda_arity_param.hpp"
|
#include "boost/mpl/aux_/lambda_arity_param.hpp"
|
||||||
|
#include "boost/mpl/aux_/config/lambda.hpp"
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
namespace mpl {
|
namespace mpl {
|
||||||
|
Reference in New Issue
Block a user