mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-03 23:04:33 +02:00
ISO-friendly lambda
[SVN r16572]
This commit is contained in:
@@ -102,7 +102,7 @@ struct lambda
|
||||
|
||||
# define AUX_LAMBDA_INVOCATION(unused, i, T) \
|
||||
, typename lambda< \
|
||||
typename f_::BOOST_PP_CAT(arg,BOOST_PP_INC(i)) \
|
||||
typename F::BOOST_PP_CAT(arg,BOOST_PP_INC(i)) \
|
||||
, false \
|
||||
>::type \
|
||||
/**/
|
||||
|
@@ -21,6 +21,7 @@
|
||||
|
||||
#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
||||
|
||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) /**/
|
||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/
|
||||
|
||||
#else
|
||||
@@ -35,9 +36,7 @@
|
||||
typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \
|
||||
/**/
|
||||
|
||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) \
|
||||
struct rebind \
|
||||
{ \
|
||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
|
||||
BOOST_STATIC_CONSTANT(int, arity = i); \
|
||||
BOOST_PP_LIST_FOR_EACH_I_R( \
|
||||
1 \
|
||||
@@ -45,13 +44,33 @@
|
||||
, typedef \
|
||||
, BOOST_PP_TUPLE_TO_LIST(i,params) \
|
||||
) \
|
||||
\
|
||||
friend class BOOST_PP_CAT(name,_rebind); \
|
||||
typedef BOOST_PP_CAT(name,_rebind) rebind; \
|
||||
/**/
|
||||
|
||||
#if !defined(__BORLANDC__)
|
||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
|
||||
}; \
|
||||
struct BOOST_PP_CAT(name,_rebind) \
|
||||
{ \
|
||||
template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
|
||||
: name< BOOST_MPL_PP_PARAMS(i,U) > \
|
||||
{ \
|
||||
}; \
|
||||
/**/
|
||||
#else
|
||||
# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params) \
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(i, name, params) \
|
||||
}; \
|
||||
struct BOOST_PP_CAT(name,_rebind) \
|
||||
{ \
|
||||
template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \
|
||||
{ \
|
||||
typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \
|
||||
}; \
|
||||
}; \
|
||||
/**/
|
||||
/**/
|
||||
#endif
|
||||
|
||||
#endif // BOOST_MPL_NO_FULL_LAMBDA_SUPPORT
|
||||
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -21,7 +21,7 @@ template<> struct lambda_impl<1, false>
|
||||
typedef typename F::rebind f_;
|
||||
typedef bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -33,7 +33,7 @@ template<> struct lambda_impl<1, true>
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename f_::arg1, false >::type
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -46,7 +46,7 @@ template<> struct lambda_impl<2, false>
|
||||
typedef bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -59,7 +59,7 @@ template<> struct lambda_impl<2, true>
|
||||
typedef protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -72,7 +72,7 @@ template<> struct lambda_impl<3, false>
|
||||
typedef bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -85,7 +85,7 @@ template<> struct lambda_impl<3, true>
|
||||
typedef protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -98,7 +98,7 @@ template<> struct lambda_impl<4, false>
|
||||
typedef bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -111,7 +111,7 @@ template<> struct lambda_impl<4, true>
|
||||
typedef protect< bind4<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
@@ -124,7 +124,7 @@ template<> struct lambda_impl<5, false>
|
||||
typedef bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> type;
|
||||
};
|
||||
};
|
||||
@@ -137,7 +137,7 @@ template<> struct lambda_impl<5, true>
|
||||
typedef protect< bind5<
|
||||
f_
|
||||
|
||||
,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type, typename lambda< typename F::arg4, false >::type, typename lambda< typename F::arg5, false >::type
|
||||
> > type;
|
||||
};
|
||||
};
|
||||
|
@@ -25,7 +25,7 @@ namespace boost {
|
||||
namespace mpl {
|
||||
namespace aux {
|
||||
|
||||
// gcc ICEs on |has_rebind|
|
||||
// gcc ICE-s on 'has_rebind'
|
||||
#if !defined(__GNUC__)
|
||||
|
||||
template< bool >
|
||||
@@ -37,32 +37,14 @@ struct template_arity_impl
|
||||
};
|
||||
};
|
||||
|
||||
#if defined(__BORLANDC__) && (__BORLANDC__ >= 0x561 && !defined(BOOST_STRICT_CONFIG))
|
||||
template< typename Rebind >
|
||||
struct template_arity_value
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(int, value = Rebind::arity);
|
||||
};
|
||||
|
||||
template<>
|
||||
struct template_arity_impl<true>
|
||||
{
|
||||
template< typename F > struct result_
|
||||
: template_arity_value<typename F::rebind>
|
||||
{
|
||||
};
|
||||
};
|
||||
#else
|
||||
template<>
|
||||
struct template_arity_impl<true>
|
||||
{
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
BOOST_STATIC_CONSTANT(int, value = f_::arity);
|
||||
BOOST_STATIC_CONSTANT(int, value = F::arity);
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
template< typename F >
|
||||
struct template_arity
|
||||
|
Reference in New Issue
Block a user