mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-03 06:44:37 +02:00
make lambda more EDG-friendly
[SVN r17788]
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
# include "boost/mpl/protect.hpp"
|
||||
# include "boost/mpl/quote.hpp"
|
||||
# include "boost/mpl/bool.hpp"
|
||||
# include "boost/mpl/int_fwd.hpp"
|
||||
# include "boost/mpl/aux_/template_arity.hpp"
|
||||
# include "boost/mpl/aux_/config/ttp.hpp"
|
||||
#endif
|
||||
@@ -80,8 +81,8 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
AUX_ARITY_PARAM(long Arity = aux::template_arity<T>::value)
|
||||
, typename Protect = false_
|
||||
AUX_ARITY_PARAM(typename Arity = int_< aux::template_arity<T>::value >)
|
||||
>
|
||||
struct lambda_impl
|
||||
{
|
||||
@@ -91,10 +92,10 @@ struct lambda_impl
|
||||
|
||||
template<
|
||||
typename T
|
||||
AUX_ARITY_PARAM(long Arity = aux::template_arity<T>::value)
|
||||
AUX_ARITY_PARAM(typename Arity = int_< aux::template_arity<T>::value >)
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl<T,false AUX_ARITY_PARAM(Arity)>
|
||||
: lambda_impl<T,false_ AUX_ARITY_PARAM(Arity)>
|
||||
{
|
||||
};
|
||||
|
||||
@@ -120,8 +121,8 @@ struct lambda_or< BOOST_MPL_PP_ENUM(n,false) >
|
||||
} // namespace aux
|
||||
#undef n
|
||||
|
||||
template< int N, bool Protect >
|
||||
struct lambda_impl< arg<N>, Protect AUX_ARITY_PARAM(-1) >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>, Protect AUX_ARITY_PARAM(int_<-1>) >
|
||||
{
|
||||
BOOST_MPL_AUX_IS_LAMBDA_EXPR(true_)
|
||||
typedef arg<N> type;
|
||||
@@ -134,8 +135,8 @@ struct lambda_impl< arg<N>, Protect AUX_ARITY_PARAM(-1) >
|
||||
#include BOOST_PP_ITERATE()
|
||||
|
||||
//: special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
struct lambda_impl< protect<T>, Protect AUX_ARITY_PARAM(1) >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>, Protect AUX_ARITY_PARAM(int_<1>) >
|
||||
{
|
||||
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
|
||||
typedef protect<T> type;
|
||||
@@ -144,11 +145,12 @@ struct lambda_impl< protect<T>, Protect AUX_ARITY_PARAM(1) >
|
||||
//: specializations for main 'bind', 'bind1st' and 'bind2nd' forms
|
||||
template<
|
||||
typename F, AUX_LAMBDA_BIND_PARAMS(typename T)
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind<F,AUX_LAMBDA_BIND_PARAMS(T)>
|
||||
, Protect AUX_ARITY_PARAM(BOOST_PP_INC(BOOST_MPL_METAFUNCTION_MAX_ARITY))
|
||||
, Protect
|
||||
AUX_ARITY_PARAM(int_<BOOST_PP_INC(BOOST_MPL_METAFUNCTION_MAX_ARITY)>)
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
|
||||
@@ -157,9 +159,9 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>, Protect AUX_ARITY_PARAM(2) >
|
||||
struct lambda_impl< bind1st<F,T>, Protect AUX_ARITY_PARAM(int_<2>) >
|
||||
{
|
||||
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
|
||||
typedef bind1st<F,T> type;
|
||||
@@ -167,9 +169,9 @@ struct lambda_impl< bind1st<F,T>, Protect AUX_ARITY_PARAM(2) >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>, Protect AUX_ARITY_PARAM(2) >
|
||||
struct lambda_impl< bind2nd<F,T>, Protect AUX_ARITY_PARAM(int_<2>) >
|
||||
{
|
||||
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
|
||||
typedef bind2nd<F,T> type;
|
||||
@@ -197,8 +199,8 @@ template<
|
||||
template< AUX_LAMBDA_PARAMS(i, typename P) > class F
|
||||
, AUX_LAMBDA_PARAMS(i, typename T)
|
||||
>
|
||||
struct lambda< F<AUX_LAMBDA_PARAMS(i, T)> AUX_ARITY_PARAM(i) >
|
||||
: lambda_impl< F<AUX_LAMBDA_PARAMS(i, T)>, true AUX_ARITY_PARAM(i) >
|
||||
struct lambda< F<AUX_LAMBDA_PARAMS(i, T)> AUX_ARITY_PARAM(int_<i>) >
|
||||
: lambda_impl< F<AUX_LAMBDA_PARAMS(i, T)>, true_ AUX_ARITY_PARAM(int_<i>) >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -207,9 +209,11 @@ struct lambda< F<AUX_LAMBDA_PARAMS(i, T)> AUX_ARITY_PARAM(i) >
|
||||
template<
|
||||
template< AUX_LAMBDA_PARAMS(i, typename P) > class F
|
||||
, AUX_LAMBDA_PARAMS(i, typename T)
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<AUX_LAMBDA_PARAMS(i, T)>, Protect AUX_ARITY_PARAM(int_<i>)
|
||||
>
|
||||
struct lambda_impl< F<AUX_LAMBDA_PARAMS(i, T)>, Protect AUX_ARITY_PARAM(i) >
|
||||
{
|
||||
# define AUX_LAMBDA_INVOCATION(unused, i, T) \
|
||||
BOOST_PP_COMMA_IF(i) \
|
||||
@@ -234,8 +238,7 @@ struct lambda_impl< F<AUX_LAMBDA_PARAMS(i, T)>, Protect AUX_ARITY_PARAM(i) >
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< AUX_LAMBDA_PARAMS(i, typename P) > class F
|
||||
, AUX_LAMBDA_PARAMS(i, typename L)
|
||||
>
|
||||
@@ -250,7 +253,7 @@ template<
|
||||
template< AUX_LAMBDA_PARAMS(i, typename P) > class F
|
||||
, AUX_LAMBDA_PARAMS(i, typename L)
|
||||
>
|
||||
struct BOOST_PP_CAT(le_result,i)< true,false,F,AUX_LAMBDA_PARAMS(i, L) >
|
||||
struct BOOST_PP_CAT(le_result,i)< true_,false_,F,AUX_LAMBDA_PARAMS(i, L) >
|
||||
{
|
||||
typedef BOOST_PP_CAT(bind,i)<
|
||||
BOOST_PP_CAT(quote,i)<F>
|
||||
@@ -262,7 +265,7 @@ template<
|
||||
template< AUX_LAMBDA_PARAMS(i, typename P) > class F
|
||||
, AUX_LAMBDA_PARAMS(i, typename L)
|
||||
>
|
||||
struct BOOST_PP_CAT(le_result,i)< true,true,F,AUX_LAMBDA_PARAMS(i, L) >
|
||||
struct BOOST_PP_CAT(le_result,i)< true_,true_,F,AUX_LAMBDA_PARAMS(i, L) >
|
||||
{
|
||||
typedef protect< BOOST_PP_CAT(bind,i)<
|
||||
BOOST_PP_CAT(quote,i)<F>
|
||||
@@ -285,9 +288,11 @@ struct BOOST_PP_CAT(le_result,i)< true,true,F,AUX_LAMBDA_PARAMS(i, L) >
|
||||
template<
|
||||
template< AUX_LAMBDA_PARAMS(i, typename P) > class F
|
||||
, AUX_LAMBDA_PARAMS(i, typename T)
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<AUX_LAMBDA_PARAMS(i, T)>, Protect AUX_ARITY_PARAM(int_<i>)
|
||||
>
|
||||
struct lambda_impl< F<AUX_LAMBDA_PARAMS(i, T)>, Protect AUX_ARITY_PARAM(i) >
|
||||
{
|
||||
BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_INVOCATION, T)
|
||||
typedef aux::lambda_or<
|
||||
@@ -295,7 +300,7 @@ struct lambda_impl< F<AUX_LAMBDA_PARAMS(i, T)>, Protect AUX_ARITY_PARAM(i) >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::BOOST_PP_CAT(le_result,i)<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, AUX_LAMBDA_PARAMS(i, l)
|
||||
@@ -311,11 +316,11 @@ struct lambda_impl< F<AUX_LAMBDA_PARAMS(i, T)>, Protect AUX_ARITY_PARAM(i) >
|
||||
|
||||
template<
|
||||
typename F AUX_LAMBDA_BIND_N_PARAMS(i, typename T)
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
BOOST_PP_CAT(bind,i)<F AUX_LAMBDA_BIND_N_PARAMS(i, T)>
|
||||
, Protect AUX_ARITY_PARAM(BOOST_PP_INC(i))
|
||||
, Protect AUX_ARITY_PARAM(int_<BOOST_PP_INC(i)>)
|
||||
>
|
||||
{
|
||||
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
|
||||
|
@@ -6,8 +6,8 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, long Arity = aux::template_arity<T>::value
|
||||
, typename Protect = false_
|
||||
, typename Arity = int_< aux::template_arity<T>::value >
|
||||
>
|
||||
struct lambda_impl
|
||||
{
|
||||
@@ -17,10 +17,10 @@ struct lambda_impl
|
||||
|
||||
template<
|
||||
typename T
|
||||
, long Arity = aux::template_arity<T>::value
|
||||
, typename Arity = int_< aux::template_arity<T>::value >
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false,Arity >
|
||||
: lambda_impl< T,false_,Arity >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,8 +43,8 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
struct lambda_impl< arg<N>,Protect,-1 >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect,int_<-1> >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
typedef arg<N> type;
|
||||
@@ -52,11 +52,11 @@ struct lambda_impl< arg<N>,Protect,-1 >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
, Protect, 1
|
||||
, Protect, int_<1>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -69,16 +69,15 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1>,1 >
|
||||
: lambda_impl< F<T1>,true,1 >
|
||||
struct lambda< F<T1>,int_<1> >
|
||||
: lambda_impl< F<T1>,true_,int_<1> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1>,Protect,int_<1 >
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect,1 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect,1 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,11 +138,11 @@ struct lambda_impl< F<T1>,Protect,1 >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
, Protect, 2
|
||||
, Protect, int_<2>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -155,16 +156,15 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2>,2 >
|
||||
: lambda_impl< F<T1,T2>,true,2 >
|
||||
struct lambda< F<T1,T2>,int_<2> >
|
||||
: lambda_impl< F<T1,T2>,true_,int_<2> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2>,Protect,int_<2 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,11 +227,11 @@ struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
, Protect, 3
|
||||
, Protect, int_<3>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -243,16 +245,15 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3>,3 >
|
||||
: lambda_impl< F<T1,T2,T3>,true,3 >
|
||||
struct lambda< F<T1,T2,T3>,int_<3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true_,int_<3> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3>,Protect,int_<3 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,11 +317,11 @@ struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
, Protect, 4
|
||||
, Protect, int_<4>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -332,16 +335,15 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4>,4 >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true,4 >
|
||||
struct lambda< F<T1,T2,T3,T4>,int_<4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_,int_<4> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4>,Protect,int_<4 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,11 +412,11 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
, Protect, 5
|
||||
, Protect, int_<5>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -430,16 +434,15 @@ template<
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5>,5 >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true,5 >
|
||||
struct lambda< F<T1,T2,T3,T4,T5>,int_<5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_,int_<5> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5>,Protect,int_<5 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,11 +525,11 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
, Protect, 6
|
||||
, Protect, int_<6>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -535,8 +540,8 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
struct lambda_impl< protect<T>,Protect,1 >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect,int_<1> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef protect<T> type;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect,1 >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect, 6
|
||||
, Protect
|
||||
, int_<6>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,9 +565,9 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect,2 >
|
||||
struct lambda_impl< bind1st<F,T>,Protect,int_<2> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef bind1st< F,T > type;
|
||||
@@ -569,9 +575,9 @@ struct lambda_impl< bind1st<F,T>,Protect,2 >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect,2 >
|
||||
struct lambda_impl< bind2nd<F,T>,Protect,int_<2> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef bind2nd< F,T > type;
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename apply2< Predicate,State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -6,8 +6,8 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, long Arity = aux::template_arity<T>::value
|
||||
, typename Protect = false_
|
||||
, typename Arity = int_< aux::template_arity<T>::value >
|
||||
>
|
||||
struct lambda_impl
|
||||
{
|
||||
@@ -17,10 +17,10 @@ struct lambda_impl
|
||||
|
||||
template<
|
||||
typename T
|
||||
, long Arity = aux::template_arity<T>::value
|
||||
, typename Arity = int_< aux::template_arity<T>::value >
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false,Arity >
|
||||
: lambda_impl< T,false_,Arity >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,8 +43,8 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
struct lambda_impl< arg<N>,Protect,-1 >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect,int_<-1> >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
typedef arg<N> type;
|
||||
@@ -52,11 +52,11 @@ struct lambda_impl< arg<N>,Protect,-1 >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
, Protect, 1
|
||||
, Protect, int_<1>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -69,16 +69,15 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1>,1 >
|
||||
: lambda_impl< F<T1>,true,1 >
|
||||
struct lambda< F<T1>,int_<1> >
|
||||
: lambda_impl< F<T1>,true_,int_<1> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1>,Protect,int_<1 >
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect,1 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect,1 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,11 +138,11 @@ struct lambda_impl< F<T1>,Protect,1 >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
, Protect, 2
|
||||
, Protect, int_<2>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -155,16 +156,15 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2>,2 >
|
||||
: lambda_impl< F<T1,T2>,true,2 >
|
||||
struct lambda< F<T1,T2>,int_<2> >
|
||||
: lambda_impl< F<T1,T2>,true_,int_<2> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2>,Protect,int_<2 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,11 +227,11 @@ struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
, Protect, 3
|
||||
, Protect, int_<3>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -243,16 +245,15 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3>,3 >
|
||||
: lambda_impl< F<T1,T2,T3>,true,3 >
|
||||
struct lambda< F<T1,T2,T3>,int_<3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true_,int_<3> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3>,Protect,int_<3 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,11 +317,11 @@ struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
, Protect, 4
|
||||
, Protect, int_<4>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -332,16 +335,15 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4>,4 >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true,4 >
|
||||
struct lambda< F<T1,T2,T3,T4>,int_<4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_,int_<4> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4>,Protect,int_<4 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,11 +412,11 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
, Protect, 5
|
||||
, Protect, int_<5>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -430,16 +434,15 @@ template<
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5>,5 >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true,5 >
|
||||
struct lambda< F<T1,T2,T3,T4,T5>,int_<5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_,int_<5> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5>,Protect,int_<5 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,11 +525,11 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
, Protect, 6
|
||||
, Protect, int_<6>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -535,8 +540,8 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
struct lambda_impl< protect<T>,Protect,1 >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect,int_<1> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef protect<T> type;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect,1 >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect, 6
|
||||
, Protect
|
||||
, int_<6>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,9 +565,9 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect,2 >
|
||||
struct lambda_impl< bind1st<F,T>,Protect,int_<2> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef bind1st< F,T > type;
|
||||
@@ -569,9 +575,9 @@ struct lambda_impl< bind1st<F,T>,Protect,2 >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect,2 >
|
||||
struct lambda_impl< bind2nd<F,T>,Protect,int_<2> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef bind2nd< F,T > type;
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename apply2< Predicate,State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -18,6 +18,7 @@ struct template_arity_impl<true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
static int const value = F::arity;
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -6,8 +6,8 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, long Arity = aux::template_arity<T>::value
|
||||
, typename Protect = false_
|
||||
, typename Arity = int_< aux::template_arity<T>::value >
|
||||
>
|
||||
struct lambda_impl
|
||||
{
|
||||
@@ -17,10 +17,10 @@ struct lambda_impl
|
||||
|
||||
template<
|
||||
typename T
|
||||
, long Arity = aux::template_arity<T>::value
|
||||
, typename Arity = int_< aux::template_arity<T>::value >
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false,Arity >
|
||||
: lambda_impl< T,false_,Arity >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,8 +43,8 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
struct lambda_impl< arg<N>,Protect,-1 >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect,int_<-1> >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
typedef arg<N> type;
|
||||
@@ -52,11 +52,11 @@ struct lambda_impl< arg<N>,Protect,-1 >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
, Protect, 1
|
||||
, Protect, int_<1>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -69,16 +69,15 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1>,1 >
|
||||
: lambda_impl< F<T1>,true,1 >
|
||||
struct lambda< F<T1>,int_<1> >
|
||||
: lambda_impl< F<T1>,true_,int_<1> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1>,Protect,int_<1 >
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect,1 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect,1 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,11 +138,11 @@ struct lambda_impl< F<T1>,Protect,1 >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
, Protect, 2
|
||||
, Protect, int_<2>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -155,16 +156,15 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2>,2 >
|
||||
: lambda_impl< F<T1,T2>,true,2 >
|
||||
struct lambda< F<T1,T2>,int_<2> >
|
||||
: lambda_impl< F<T1,T2>,true_,int_<2> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2>,Protect,int_<2 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,11 +227,11 @@ struct lambda_impl< F<T1,T2>,Protect,2 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
, Protect, 3
|
||||
, Protect, int_<3>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -243,16 +245,15 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3>,3 >
|
||||
: lambda_impl< F<T1,T2,T3>,true,3 >
|
||||
struct lambda< F<T1,T2,T3>,int_<3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true_,int_<3> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3>,Protect,int_<3 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,11 +317,11 @@ struct lambda_impl< F<T1,T2,T3>,Protect,3 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
, Protect, 4
|
||||
, Protect, int_<4>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -332,16 +335,15 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4>,4 >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true,4 >
|
||||
struct lambda< F<T1,T2,T3,T4>,int_<4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_,int_<4> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4>,Protect,int_<4 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,11 +412,11 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect,4 >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
, Protect, 5
|
||||
, Protect, int_<5>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -430,16 +434,15 @@ template<
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5>,5 >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true,5 >
|
||||
struct lambda< F<T1,T2,T3,T4,T5>,int_<5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_,int_<5> >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5>,Protect,int_<5 >
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,11 +525,11 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect,5 >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
, Protect, 6
|
||||
, Protect, int_<6>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -535,8 +540,8 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
struct lambda_impl< protect<T>,Protect,1 >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect,int_<1> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef protect<T> type;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect,1 >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect, 6
|
||||
, Protect
|
||||
, int_<6>
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,9 +565,9 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect,2 >
|
||||
struct lambda_impl< bind1st<F,T>,Protect,int_<2> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef bind1st< F,T > type;
|
||||
@@ -569,9 +575,9 @@ struct lambda_impl< bind1st<F,T>,Protect,2 >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect,2 >
|
||||
struct lambda_impl< bind2nd<F,T>,Protect,int_<2> >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
typedef bind2nd< F,T > type;
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename Predicate::template apply< State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -26,28 +26,28 @@ template<
|
||||
, typename T1
|
||||
>
|
||||
typename arity_tag<1>::type
|
||||
arity_helper(type_wrapper< F<T1> >,arity_tag<1 >);
|
||||
arity_helper(type_wrapper< F<T1>>,arity_tag<1 >);
|
||||
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
>
|
||||
typename arity_tag<2>::type
|
||||
arity_helper(type_wrapper< F<T1,T2> >,arity_tag<2 >);
|
||||
arity_helper(type_wrapper< F<T1,T2>>,arity_tag<2 >);
|
||||
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
typename arity_tag<3>::type
|
||||
arity_helper(type_wrapper< F<T1,T2,T3> >,arity_tag<3 >);
|
||||
arity_helper(type_wrapper< F<T1,T2,T3>>,arity_tag<3 >);
|
||||
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
typename arity_tag<4>::type
|
||||
arity_helper(type_wrapper< F<T1,T2,T3,T4> >,arity_tag<4 >);
|
||||
arity_helper(type_wrapper< F<T1,T2,T3,T4>>,arity_tag<4 >);
|
||||
|
||||
template<
|
||||
template<
|
||||
@@ -58,7 +58,7 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
typename arity_tag<5>::type
|
||||
arity_helper(type_wrapper< F<T1,T2,T3,T4,T5> >,arity_tag<5 >);
|
||||
arity_helper(type_wrapper< F<T1,T2,T3,T4,T5>>,arity_tag<5 >);
|
||||
|
||||
template< typename F, int N >
|
||||
struct template_arity_impl
|
||||
|
@@ -6,7 +6,7 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, typename Protect = false_
|
||||
|
||||
>
|
||||
struct lambda_impl
|
||||
@@ -20,7 +20,7 @@ template<
|
||||
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false >
|
||||
: lambda_impl< T,false_ >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
@@ -52,7 +52,7 @@ struct lambda_impl< arg<N>,Protect >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
@@ -70,15 +70,14 @@ template<
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1> >
|
||||
: lambda_impl< F<T1>,true >
|
||||
: lambda_impl< F<T1>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<T1>, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,7 +138,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
@@ -156,15 +157,14 @@ template<
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2> >
|
||||
: lambda_impl< F<T1,T2>,true >
|
||||
: lambda_impl< F<T1,T2>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,7 +227,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
@@ -244,15 +246,14 @@ template<
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true >
|
||||
: lambda_impl< F<T1,T2,T3>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,7 +317,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
@@ -333,15 +336,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,7 +412,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
@@ -431,15 +435,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,7 +525,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
@@ -535,7 +540,7 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect
|
||||
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,7 +565,7 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect >
|
||||
{
|
||||
@@ -569,7 +575,7 @@ struct lambda_impl< bind1st<F,T>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect >
|
||||
{
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename apply2< Predicate,State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -6,7 +6,7 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, typename Protect = false_
|
||||
|
||||
>
|
||||
struct lambda_impl
|
||||
@@ -20,7 +20,7 @@ template<
|
||||
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false >
|
||||
: lambda_impl< T,false_ >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
@@ -52,7 +52,7 @@ struct lambda_impl< arg<N>,Protect >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
@@ -70,15 +70,14 @@ template<
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1> >
|
||||
: lambda_impl< F<T1>,true >
|
||||
: lambda_impl< F<T1>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<T1>, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,7 +138,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
@@ -156,15 +157,14 @@ template<
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2> >
|
||||
: lambda_impl< F<T1,T2>,true >
|
||||
: lambda_impl< F<T1,T2>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,7 +227,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
@@ -244,15 +246,14 @@ template<
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true >
|
||||
: lambda_impl< F<T1,T2,T3>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,7 +317,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
@@ -333,15 +336,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,7 +412,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
@@ -431,15 +435,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,7 +525,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
@@ -535,7 +540,7 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect
|
||||
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,7 +565,7 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect >
|
||||
{
|
||||
@@ -569,7 +575,7 @@ struct lambda_impl< bind1st<F,T>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect >
|
||||
{
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename apply2< Predicate,State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -6,7 +6,7 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, typename Protect = false_
|
||||
|
||||
>
|
||||
struct lambda_impl
|
||||
@@ -20,7 +20,7 @@ template<
|
||||
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false >
|
||||
: lambda_impl< T,false_ >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
@@ -52,7 +52,7 @@ struct lambda_impl< arg<N>,Protect >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
@@ -70,15 +70,14 @@ template<
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1> >
|
||||
: lambda_impl< F<T1>,true >
|
||||
: lambda_impl< F<T1>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<T1>, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,7 +138,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
@@ -156,15 +157,14 @@ template<
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2> >
|
||||
: lambda_impl< F<T1,T2>,true >
|
||||
: lambda_impl< F<T1,T2>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,7 +227,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
@@ -244,15 +246,14 @@ template<
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true >
|
||||
: lambda_impl< F<T1,T2,T3>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,7 +317,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
@@ -333,15 +336,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,7 +412,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
@@ -431,15 +435,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,7 +525,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
@@ -535,7 +540,7 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect
|
||||
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,7 +565,7 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect >
|
||||
{
|
||||
@@ -569,7 +575,7 @@ struct lambda_impl< bind1st<F,T>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect >
|
||||
{
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename apply2< Predicate,State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -11,7 +11,7 @@ struct resolve_arg_impl
|
||||
{
|
||||
template<
|
||||
typename T, typename U1, typename U2, typename U3
|
||||
, typename U4 , typename U5
|
||||
, typename U4, typename U5
|
||||
>
|
||||
struct result_
|
||||
{
|
||||
@@ -24,7 +24,7 @@ struct resolve_arg_impl<true>
|
||||
{
|
||||
template<
|
||||
typename T, typename U1, typename U2, typename U3
|
||||
, typename U4 , typename U5
|
||||
, typename U4, typename U5
|
||||
>
|
||||
struct result_
|
||||
{
|
||||
|
@@ -11,7 +11,7 @@ struct resolve_arg_impl
|
||||
{
|
||||
template<
|
||||
typename T, typename U1, typename U2, typename U3
|
||||
, typename U4 , typename U5
|
||||
, typename U4, typename U5
|
||||
>
|
||||
struct result_
|
||||
{
|
||||
@@ -24,7 +24,7 @@ struct resolve_arg_impl<true>
|
||||
{
|
||||
template<
|
||||
typename T, typename U1, typename U2, typename U3
|
||||
, typename U4 , typename U5
|
||||
, typename U4, typename U5
|
||||
>
|
||||
struct result_
|
||||
{
|
||||
|
@@ -6,7 +6,7 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, typename Protect = false_
|
||||
|
||||
>
|
||||
struct lambda_impl
|
||||
@@ -20,7 +20,7 @@ template<
|
||||
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false >
|
||||
: lambda_impl< T,false_ >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
@@ -52,7 +52,7 @@ struct lambda_impl< arg<N>,Protect >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
@@ -70,15 +70,14 @@ template<
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1> >
|
||||
: lambda_impl< F<T1>,true >
|
||||
: lambda_impl< F<T1>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<T1>, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,7 +138,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
@@ -156,15 +157,14 @@ template<
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2> >
|
||||
: lambda_impl< F<T1,T2>,true >
|
||||
: lambda_impl< F<T1,T2>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,7 +227,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
@@ -244,15 +246,14 @@ template<
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true >
|
||||
: lambda_impl< F<T1,T2,T3>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,7 +317,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
@@ -333,15 +336,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,7 +412,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
@@ -431,15 +435,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,7 +525,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
@@ -535,7 +540,7 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect
|
||||
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,7 +565,7 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect >
|
||||
{
|
||||
@@ -569,7 +575,7 @@ struct lambda_impl< bind1st<F,T>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect >
|
||||
{
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename Predicate::template apply< State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -18,6 +18,7 @@ struct template_arity_impl<true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
static int const value = F::arity;
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
|
@@ -6,7 +6,7 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, typename Protect = false_
|
||||
|
||||
>
|
||||
struct lambda_impl
|
||||
@@ -20,7 +20,7 @@ template<
|
||||
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false >
|
||||
: lambda_impl< T,false_ >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
@@ -52,7 +52,7 @@ struct lambda_impl< arg<N>,Protect >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
@@ -70,15 +70,14 @@ template<
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1> >
|
||||
: lambda_impl< F<T1>,true >
|
||||
: lambda_impl< F<T1>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<T1>, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,7 +138,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
@@ -156,15 +157,14 @@ template<
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2> >
|
||||
: lambda_impl< F<T1,T2>,true >
|
||||
: lambda_impl< F<T1,T2>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,7 +227,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
@@ -244,15 +246,14 @@ template<
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true >
|
||||
: lambda_impl< F<T1,T2,T3>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,7 +317,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
@@ -333,15 +336,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,7 +412,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
@@ -431,15 +435,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,7 +525,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
@@ -535,7 +540,7 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect
|
||||
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,7 +565,7 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect >
|
||||
{
|
||||
@@ -569,7 +575,7 @@ struct lambda_impl< bind1st<F,T>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect >
|
||||
{
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename Predicate::template apply< State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,mpl::next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -6,7 +6,7 @@ namespace mpl {
|
||||
|
||||
template<
|
||||
typename T
|
||||
, bool Protect = false
|
||||
, typename Protect = false_
|
||||
|
||||
>
|
||||
struct lambda_impl
|
||||
@@ -20,7 +20,7 @@ template<
|
||||
|
||||
>
|
||||
struct lambda
|
||||
: lambda_impl< T,false >
|
||||
: lambda_impl< T,false_ >
|
||||
{
|
||||
};
|
||||
|
||||
@@ -43,7 +43,7 @@ struct lambda_or< false,false,false,false,false >
|
||||
|
||||
} // namespace aux
|
||||
|
||||
template< int N, bool Protect >
|
||||
template< int N, typename Protect >
|
||||
struct lambda_impl< arg<N>,Protect >
|
||||
{
|
||||
typedef true_ is_le;
|
||||
@@ -52,7 +52,7 @@ struct lambda_impl< arg<N>,Protect >
|
||||
|
||||
template<
|
||||
typename F
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind0<F>
|
||||
@@ -70,15 +70,14 @@ template<
|
||||
, typename T1
|
||||
>
|
||||
struct lambda< F<T1> >
|
||||
: lambda_impl< F<T1>,true >
|
||||
: lambda_impl< F<T1>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
@@ -93,7 +92,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,false,F,L1 >
|
||||
struct le_result1< true_,false_,F,L1 >
|
||||
{
|
||||
typedef bind1<
|
||||
quote1<F>
|
||||
@@ -105,7 +104,7 @@ template<
|
||||
template< typename P1 > class F
|
||||
, typename L1
|
||||
>
|
||||
struct le_result1< true,true,F,L1 >
|
||||
struct le_result1< true_,true_,F,L1 >
|
||||
{
|
||||
typedef protect< bind1<
|
||||
quote1<F>
|
||||
@@ -118,9 +117,11 @@ struct le_result1< true,true,F,L1 >
|
||||
template<
|
||||
template< typename P1 > class F
|
||||
, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F<T1>, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef aux::lambda_or<
|
||||
@@ -128,7 +129,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result1<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1
|
||||
@@ -137,7 +138,7 @@ struct lambda_impl< F<T1>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind1< F,T1 >
|
||||
@@ -156,15 +157,14 @@ template<
|
||||
, typename T1, typename T2
|
||||
>
|
||||
struct lambda< F<T1,T2> >
|
||||
: lambda_impl< F<T1,T2>,true >
|
||||
: lambda_impl< F<T1,T2>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
@@ -179,7 +179,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,false,F,L1,L2 >
|
||||
struct le_result2< true_,false_,F,L1,L2 >
|
||||
{
|
||||
typedef bind2<
|
||||
quote2<F>
|
||||
@@ -191,7 +191,7 @@ template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename L1, typename L2
|
||||
>
|
||||
struct le_result2< true,true,F,L1,L2 >
|
||||
struct le_result2< true_,true_,F,L1,L2 >
|
||||
{
|
||||
typedef protect< bind2<
|
||||
quote2<F>
|
||||
@@ -204,9 +204,11 @@ struct le_result2< true,true,F,L1,L2 >
|
||||
template<
|
||||
template< typename P1, typename P2 > class F
|
||||
, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -216,7 +218,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result2<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2
|
||||
@@ -225,7 +227,7 @@ struct lambda_impl< F<T1,T2>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind2< F,T1,T2 >
|
||||
@@ -244,15 +246,14 @@ template<
|
||||
, typename T1, typename T2, typename T3
|
||||
>
|
||||
struct lambda< F<T1,T2,T3> >
|
||||
: lambda_impl< F<T1,T2,T3>,true >
|
||||
: lambda_impl< F<T1,T2,T3>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
@@ -267,7 +268,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,false,F,L1,L2,L3 >
|
||||
struct le_result3< true_,false_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef bind3<
|
||||
quote3<F>
|
||||
@@ -279,7 +280,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename L1, typename L2, typename L3
|
||||
>
|
||||
struct le_result3< true,true,F,L1,L2,L3 >
|
||||
struct le_result3< true_,true_,F,L1,L2,L3 >
|
||||
{
|
||||
typedef protect< bind3<
|
||||
quote3<F>
|
||||
@@ -292,9 +293,11 @@ struct le_result3< true,true,F,L1,L2,L3 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3 > class F
|
||||
, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -305,7 +308,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result3<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3
|
||||
@@ -314,7 +317,7 @@ struct lambda_impl< F<T1,T2,T3>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind3< F,T1,T2,T3 >
|
||||
@@ -333,15 +336,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4> >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
@@ -357,7 +359,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,false,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,false_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef bind4<
|
||||
quote4<F>
|
||||
@@ -370,7 +372,7 @@ template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4
|
||||
>
|
||||
struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
struct le_result4< true_,true_,F,L1,L2,L3,L4 >
|
||||
{
|
||||
typedef protect< bind4<
|
||||
quote4<F>
|
||||
@@ -384,9 +386,11 @@ struct le_result4< true,true,F,L1,L2,L3,L4 >
|
||||
template<
|
||||
template< typename P1, typename P2, typename P3, typename P4 > class F
|
||||
, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -399,7 +403,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result4<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4
|
||||
@@ -408,7 +412,7 @@ struct lambda_impl< F<T1,T2,T3,T4>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind4< F,T1,T2,T3,T4 >
|
||||
@@ -431,15 +435,14 @@ template<
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
>
|
||||
struct lambda< F<T1,T2,T3,T4,T5> >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true >
|
||||
: lambda_impl< F<T1,T2,T3,T4,T5>,true_ >
|
||||
{
|
||||
};
|
||||
|
||||
namespace aux {
|
||||
|
||||
template<
|
||||
bool IsLE
|
||||
, bool Protect
|
||||
typename IsLE, typename Protect
|
||||
, template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
@@ -459,7 +462,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,false,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,false_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef bind5<
|
||||
quote5<F>
|
||||
@@ -476,7 +479,7 @@ template<
|
||||
class F
|
||||
, typename L1, typename L2, typename L3, typename L4, typename L5
|
||||
>
|
||||
struct le_result5< true,true,F,L1,L2,L3,L4,L5 >
|
||||
struct le_result5< true_,true_,F,L1,L2,L3,L4,L5 >
|
||||
{
|
||||
typedef protect< bind5<
|
||||
quote5<F>
|
||||
@@ -494,9 +497,11 @@ template<
|
||||
>
|
||||
class F
|
||||
, typename T1, typename T2, typename T3, typename T4, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
F< T1,T2,T3,T4,T5 >, Protect
|
||||
>
|
||||
struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
{
|
||||
typedef lambda_impl<T1> l1;
|
||||
typedef lambda_impl<T2> l2;
|
||||
@@ -510,7 +515,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
> is_le;
|
||||
|
||||
typedef typename aux::le_result5<
|
||||
is_le::value
|
||||
typename is_le::type
|
||||
, Protect
|
||||
, F
|
||||
, l1, l2, l3, l4, l5
|
||||
@@ -520,7 +525,7 @@ struct lambda_impl< F<T1,T2,T3,T4,T5>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind5< F,T1,T2,T3,T4,T5 >
|
||||
@@ -535,7 +540,7 @@ struct lambda_impl<
|
||||
};
|
||||
|
||||
// special case for 'protect'
|
||||
template< typename T, bool Protect >
|
||||
template< typename T, typename Protect >
|
||||
struct lambda_impl< protect<T>,Protect >
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -546,11 +551,12 @@ struct lambda_impl< protect<T>,Protect >
|
||||
template<
|
||||
typename F, typename T1, typename T2, typename T3, typename T4
|
||||
, typename T5
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl<
|
||||
bind< F,T1,T2,T3,T4,T5 >
|
||||
, Protect
|
||||
|
||||
>
|
||||
{
|
||||
typedef false_ is_le;
|
||||
@@ -559,7 +565,7 @@ struct lambda_impl<
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind1st<F,T>,Protect >
|
||||
{
|
||||
@@ -569,7 +575,7 @@ struct lambda_impl< bind1st<F,T>,Protect >
|
||||
|
||||
template<
|
||||
typename F, typename T
|
||||
, bool Protect
|
||||
, typename Protect
|
||||
>
|
||||
struct lambda_impl< bind2nd<F,T>,Protect >
|
||||
{
|
||||
|
@@ -55,7 +55,7 @@ struct iter_fold_if_forward_step
|
||||
typedef typename Predicate::template apply< State,Iterator >::type not_last;
|
||||
typedef typename iter_fold_if_step_impl<
|
||||
BOOST_MPL_AUX_MSVC_VALUE_WKND(not_last)::value
|
||||
>::template result_< Iterator,State,ForwardOp,next<Iterator> > impl_;
|
||||
>::template result_< Iterator, State, ForwardOp, mpl::next< Iterator> > impl_;
|
||||
|
||||
typedef typename impl_::state state;
|
||||
typedef typename impl_::iterator iterator;
|
||||
|
@@ -31,7 +31,7 @@ template<> struct lambda_impl<1, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind1<
|
||||
typedef mpl::protect< bind1<
|
||||
f_
|
||||
, typename lambda< typename F::arg1, false >::type
|
||||
> > type;
|
||||
@@ -56,7 +56,7 @@ template<> struct lambda_impl<2, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind2<
|
||||
typedef mpl::protect< bind2<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type
|
||||
@@ -82,7 +82,7 @@ template<> struct lambda_impl<3, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind3<
|
||||
typedef mpl::protect< bind3<
|
||||
f_
|
||||
|
||||
,typename lambda< typename F::arg1, false >::type, typename lambda< typename F::arg2, false >::type, typename lambda< typename F::arg3, false >::type
|
||||
@@ -108,7 +108,7 @@ template<> struct lambda_impl<4, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind4<
|
||||
typedef mpl::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
|
||||
@@ -134,7 +134,7 @@ template<> struct lambda_impl<5, true>
|
||||
template< typename F > struct result_
|
||||
{
|
||||
typedef typename F::rebind f_;
|
||||
typedef protect< bind5<
|
||||
typedef mpl::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
|
||||
|
@@ -19,6 +19,7 @@
|
||||
|
||||
#include "boost/mpl/lambda_fwd.hpp"
|
||||
#include "boost/mpl/void.hpp"
|
||||
#include "boost/mpl/int_fwd.hpp"
|
||||
#include "boost/mpl/aux_/preprocessor/params.hpp"
|
||||
#include "boost/mpl/aux_/preprocessor/enum.hpp"
|
||||
#include "boost/mpl/aux_/preprocessor/def_params_tail.hpp"
|
||||
@@ -88,7 +89,7 @@ struct lambda< \
|
||||
template<> \
|
||||
struct lambda< \
|
||||
name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > \
|
||||
BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(-1) \
|
||||
BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(int_<-1>) \
|
||||
> \
|
||||
{ \
|
||||
typedef name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > type; \
|
||||
|
@@ -3,7 +3,7 @@
|
||||
#define BOOST_MPL_BOOL_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/bool.hpp
|
||||
// + last modified: 25/feb/03
|
||||
// + last modified: 08/mar/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
@@ -18,6 +18,7 @@
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
#include "boost/mpl/bool_fwd.hpp"
|
||||
#include "boost/mpl/aux_/config/static_constant.hpp"
|
||||
|
||||
namespace boost { namespace mpl {
|
||||
@@ -30,10 +31,6 @@ template< bool C_ > struct bool_
|
||||
operator bool() const { return this->value; }
|
||||
};
|
||||
|
||||
// shorcuts
|
||||
typedef bool_<true> true_;
|
||||
typedef bool_<false> false_;
|
||||
|
||||
}} // namespace boost::mpl
|
||||
|
||||
#endif // BOOST_MPL_BOOL_HPP_INCLUDED
|
||||
|
31
include/boost/mpl/bool_fwd.hpp
Normal file
31
include/boost/mpl/bool_fwd.hpp
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
#ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED
|
||||
#define BOOST_MPL_BOOL_FWD_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/bool_fwd.hpp
|
||||
// + last modified: 08/mar/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
namespace boost { namespace mpl {
|
||||
|
||||
template< bool C_ > struct bool_;
|
||||
|
||||
// shorcuts
|
||||
typedef bool_<true> true_;
|
||||
typedef bool_<false> false_;
|
||||
|
||||
}}
|
||||
|
||||
#endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED
|
@@ -18,6 +18,8 @@
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
#include "boost/mpl/int_fwd.hpp"
|
||||
|
||||
#define AUX_WRAPPER_VALUE_TYPE int
|
||||
#include "boost/mpl/aux_/integral_wrapper.hpp"
|
||||
|
||||
|
25
include/boost/mpl/int_fwd.hpp
Normal file
25
include/boost/mpl/int_fwd.hpp
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
#ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED
|
||||
#define BOOST_MPL_INT_FWD_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/int_fwd.hpp
|
||||
// + last modified: 08/mar/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
namespace boost { namespace mpl {
|
||||
template< int N > struct int_;
|
||||
}}
|
||||
|
||||
#endif // BOOST_MPL_INT_FWD_HPP_INCLUDED
|
@@ -3,7 +3,7 @@
|
||||
#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/integral_c.hpp
|
||||
// + last modified: 25/feb/03
|
||||
// + last modified: 08/mar/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
@@ -18,6 +18,7 @@
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
#include "boost/mpl/integral_c_fwd.hpp"
|
||||
#include "boost/mpl/aux_/ice_cast.hpp"
|
||||
#include "boost/mpl/aux_/config/ctps.hpp"
|
||||
#include "boost/mpl/aux_/config/workaround.hpp"
|
||||
|
32
include/boost/mpl/integral_c_fwd.hpp
Normal file
32
include/boost/mpl/integral_c_fwd.hpp
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
#ifndef BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
|
||||
#define BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
|
||||
|
||||
// + file: boost/mpl/integral_c_fwd.hpp
|
||||
// + last modified: 08/mar/03
|
||||
|
||||
// Copyright (c) 2000-03
|
||||
// Aleksey Gurtovoy
|
||||
//
|
||||
// Permission to use, copy, modify, distribute and sell this software
|
||||
// and its documentation for any purpose is hereby granted without fee,
|
||||
// provided that the above copyright notice appears in all copies and
|
||||
// that both the copyright notice and this permission notice appear in
|
||||
// supporting documentation. No representations are made about the
|
||||
// suitability of this software for any purpose. It is provided "as is"
|
||||
// without express or implied warranty.
|
||||
//
|
||||
// See http://www.boost.org/libs/mpl for documentation.
|
||||
|
||||
#include "boost/mpl/aux_/config/workaround.hpp"
|
||||
|
||||
namespace boost { namespace mpl {
|
||||
#if BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
|
||||
// the type of non-type template arguments may not depend on template arguments
|
||||
template< typename T, long N > struct integral_c;
|
||||
#else
|
||||
template< typename T, T N > struct integral_c;
|
||||
#endif
|
||||
}}
|
||||
|
||||
#endif // BOOST_MPL_INTEGRAL_C_FWD_HPP_INCLUDED
|
@@ -24,7 +24,7 @@ namespace boost {
|
||||
namespace mpl {
|
||||
|
||||
#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
||||
template< typename T BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(long Arity) >
|
||||
template< typename T BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(typename Arity) >
|
||||
struct lambda;
|
||||
#else
|
||||
template< typename T, bool Protect > struct lambda;
|
||||
|
Reference in New Issue
Block a user