support for N-ary numeric metafunctions for no-CTPS compilers

[SVN r26546]
This commit is contained in:
Aleksey Gurtovoy
2004-12-17 17:49:06 +00:00
parent 6d3409c76b
commit abc3e73052
94 changed files with 885 additions and 58 deletions

View File

@@ -20,7 +20,7 @@
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include <boost/mpl/numeric_cast.hpp>
# include <boost/mpl/apply_wrap.hpp>
# include <boost/mpl/eval_if.hpp>
# include <boost/mpl/if.hpp>
# include <boost/mpl/tag.hpp>
# include <boost/mpl/aux_/numeric_cast_utils.hpp>
# include <boost/mpl/aux_/na.hpp>
@@ -41,6 +41,7 @@
# include <boost/mpl/aux_/preprocessor/partial_spec_params.hpp>
# include <boost/mpl/aux_/preprocessor/def_params_tail.hpp>
# include <boost/mpl/aux_/preprocessor/repeat.hpp>
# include <boost/mpl/aux_/preprocessor/ext_params.hpp>
# include <boost/mpl/aux_/preprocessor/params.hpp>
# include <boost/mpl/aux_/preprocessor/enum.hpp>
# include <boost/mpl/aux_/preprocessor/add.hpp>
@@ -51,16 +52,13 @@
# include <boost/mpl/aux_/config/workaround.hpp>
# include <boost/preprocessor/dec.hpp>
# include <boost/preprocessor/inc.hpp>
# include <boost/preprocessor/iterate.hpp>
# include <boost/preprocessor/cat.hpp>
#if !defined(AUX778076_OP_ARITY)
# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
# define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
# else
# define AUX778076_OP_ARITY 2
# endif
# define AUX778076_OP_ARITY BOOST_MPL_LIMIT_METAFUNCTION_ARITY
#endif
#if !defined(AUX778076_OP_IMPL_NAME)
@@ -81,12 +79,12 @@ template<
, BOOST_MPL_AUX_NTTP_DECL(int, tag2_) = BOOST_MPL_AUX_MSVC_VALUE_WKND(Tag2)::value
>
struct AUX778076_OP_IMPL_NAME
: eval_if_c<
: if_c<
( tag1_ > tag2_ )
#else
>
struct AUX778076_OP_IMPL_NAME
: eval_if_c<
: if_c<
( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1)
> BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2)
)
@@ -160,13 +158,9 @@ template< typename T > struct AUX778076_OP_TAG_NAME
#endif
#if AUX778076_OP_ARITY == 2
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct AUX778076_OP_NAME
#else
#if AUX778076_OP_ARITY != 2
# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
# define AUX778076_OP_RIGHT_OPERAND(unused, i, N) , BOOST_PP_CAT(N, BOOST_MPL_PP_ADD(i, 2))>
# define AUX778076_OP_N_CALLS(i, N) \
@@ -196,7 +190,54 @@ struct AUX778076_OP_NAME
# undef AUX778076_OP_N_CALLS
# undef AUX778076_OP_RIGHT_OPERAND
#endif // AUX778076_OP_ARITY == 2
# else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct BOOST_PP_CAT(AUX778076_OP_NAME,2);
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename N, na)
>
struct AUX778076_OP_NAME
: if_<
is_na<N3>
, BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
, AUX778076_OP_NAME<
BOOST_PP_CAT(AUX778076_OP_NAME,2)<N1,N2>
, BOOST_MPL_PP_EXT_PARAMS(3, BOOST_PP_INC(AUX778076_OP_ARITY), N)
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
AUX778076_OP_ARITY
, AUX778076_OP_NAME
, ( BOOST_MPL_PP_PARAMS(AUX778076_OP_ARITY, N) )
)
};
template<
typename N1
, typename N2
>
struct BOOST_PP_CAT(AUX778076_OP_NAME,2)
#endif
#else // AUX778076_OP_ARITY == 2
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct AUX778076_OP_NAME
#endif
#if !defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
: AUX778076_OP_IMPL_NAME<

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type

View File

@@ -61,11 +61,41 @@ template< typename T > struct bitand_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitand_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitand_
: if_<
is_na<N3>
, bitand_2< N1,N2 >
, bitand_<
bitand_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitand_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitand_2
: aux::msvc_eti_base< typename apply_wrap2<
bitand_impl<
typename bitand_tag<N1>::type
@@ -76,11 +106,15 @@ struct bitand_
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitand_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitand_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
}}

View File

@@ -61,11 +61,41 @@ template< typename T > struct bitor_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitor_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitor_
: if_<
is_na<N3>
, bitor_2< N1,N2 >
, bitor_<
bitor_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitor_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitor_2
: aux::msvc_eti_base< typename apply_wrap2<
bitor_impl<
typename bitor_tag<N1>::type
@@ -76,11 +106,15 @@ struct bitor_
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitor_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitor_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
}}

View File

@@ -61,11 +61,41 @@ template< typename T > struct bitxor_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitxor_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitxor_
: if_<
is_na<N3>
, bitxor_2< N1,N2 >
, bitxor_<
bitxor_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitxor_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitxor_2
: aux::msvc_eti_base< typename apply_wrap2<
bitxor_impl<
typename bitxor_tag<N1>::type
@@ -76,11 +106,15 @@ struct bitxor_
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitxor_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitxor_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct divides_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct divides2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct divides
: if_<
is_na<N3>
, divides2< N1,N2 >
, divides<
divides2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, divides
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct divides2
: aux::msvc_eti_base< typename apply_wrap2<
divides_impl<
typename divides_tag<N1>::type
@@ -75,11 +105,15 @@ struct divides
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, divides
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, divides)
BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct minus_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct minus2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct minus
: if_<
is_na<N3>
, minus2< N1,N2 >
, minus<
minus2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, minus
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct minus2
: aux::msvc_eti_base< typename apply_wrap2<
minus_impl<
typename minus_tag<N1>::type
@@ -75,11 +105,15 @@ struct minus
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, minus
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, minus)
BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct plus_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct plus2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct plus
: if_<
is_na<N3>
, plus2< N1,N2 >
, plus<
plus2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, plus
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct plus2
: aux::msvc_eti_base< typename apply_wrap2<
plus_impl<
typename plus_tag<N1>::type
@@ -75,11 +105,15 @@ struct plus
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, plus
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, plus)
BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct times_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct times2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct times
: if_<
is_na<N3>
, times2< N1,N2 >
, times<
times2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, times
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct times2
: aux::msvc_eti_base< typename apply_wrap2<
times_impl<
typename times_tag<N1>::type
@@ -75,11 +105,15 @@ struct times
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, times
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, times)
BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
}}

View File

@@ -61,11 +61,41 @@ template< typename T > struct bitand_tag
{
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitand_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitand_
: if_<
is_na<N3>
, bitand_2< N1,N2 >
, bitand_<
bitand_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitand_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitand_2
: aux::msvc_eti_base< typename apply_wrap2<
bitand_impl<
typename bitand_tag<N1>::type
@@ -76,11 +106,15 @@ struct bitand_
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitand_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitand_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
}}

View File

@@ -61,11 +61,41 @@ template< typename T > struct bitor_tag
{
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitor_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitor_
: if_<
is_na<N3>
, bitor_2< N1,N2 >
, bitor_<
bitor_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitor_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitor_2
: aux::msvc_eti_base< typename apply_wrap2<
bitor_impl<
typename bitor_tag<N1>::type
@@ -76,11 +106,15 @@ struct bitor_
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitor_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitor_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
}}

View File

@@ -61,11 +61,41 @@ template< typename T > struct bitxor_tag
{
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitxor_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitxor_
: if_<
is_na<N3>
, bitxor_2< N1,N2 >
, bitxor_<
bitxor_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitxor_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitxor_2
: aux::msvc_eti_base< typename apply_wrap2<
bitxor_impl<
typename bitxor_tag<N1>::type
@@ -76,11 +106,15 @@ struct bitxor_
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitxor_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitxor_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct divides_tag
{
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct divides2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct divides
: if_<
is_na<N3>
, divides2< N1,N2 >
, divides<
divides2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, divides
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct divides2
: aux::msvc_eti_base< typename apply_wrap2<
divides_impl<
typename divides_tag<N1>::type
@@ -75,11 +105,15 @@ struct divides
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, divides
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, divides)
BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct minus_tag
{
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct minus2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct minus
: if_<
is_na<N3>
, minus2< N1,N2 >
, minus<
minus2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, minus
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct minus2
: aux::msvc_eti_base< typename apply_wrap2<
minus_impl<
typename minus_tag<N1>::type
@@ -75,11 +105,15 @@ struct minus
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, minus
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, minus)
BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct plus_tag
{
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct plus2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct plus
: if_<
is_na<N3>
, plus2< N1,N2 >
, plus<
plus2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, plus
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct plus2
: aux::msvc_eti_base< typename apply_wrap2<
plus_impl<
typename plus_tag<N1>::type
@@ -75,11 +105,15 @@ struct plus
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, plus
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, plus)
BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
}}

View File

@@ -60,11 +60,41 @@ template< typename T > struct times_tag
{
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct times2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct times
: if_<
is_na<N3>
, times2< N1,N2 >
, times<
times2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, times
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct times2
: aux::msvc_eti_base< typename apply_wrap2<
times_impl<
typename times_tag<N1>::type
@@ -75,11 +105,15 @@ struct times
>::type >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, times
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, times)
BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
}}

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type

View File

@@ -61,21 +61,55 @@ template< typename T > struct bitand_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitand_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitand_
: if_<
is_na<N3>
, bitand_2< N1,N2 >
, bitand_<
bitand_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitand_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitand_2
: bitand_impl<
typename bitand_tag<N1>::type
, typename bitand_tag<N2>::type
>::template apply< N1,N2 >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitand_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitand_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitand_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitand_)
}}

View File

@@ -61,21 +61,55 @@ template< typename T > struct bitor_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitor_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitor_
: if_<
is_na<N3>
, bitor_2< N1,N2 >
, bitor_<
bitor_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitor_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitor_2
: bitor_impl<
typename bitor_tag<N1>::type
, typename bitor_tag<N2>::type
>::template apply< N1,N2 >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitor_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitor_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitor_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_)
}}

View File

@@ -61,21 +61,55 @@ template< typename T > struct bitxor_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct bitxor_2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct bitxor_
: if_<
is_na<N3>
, bitxor_2< N1,N2 >
, bitxor_<
bitxor_2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, bitxor_
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct bitxor_2
: bitxor_impl<
typename bitxor_tag<N1>::type
, typename bitxor_tag<N2>::type
>::template apply< N1,N2 >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, bitxor_, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, bitxor_
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, bitxor_)
BOOST_MPL_AUX_NA_SPEC2(2, 5, bitxor_)
}}

View File

@@ -60,21 +60,55 @@ template< typename T > struct divides_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct divides2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct divides
: if_<
is_na<N3>
, divides2< N1,N2 >
, divides<
divides2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, divides
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct divides2
: divides_impl<
typename divides_tag<N1>::type
, typename divides_tag<N2>::type
>::template apply< N1,N2 >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, divides, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, divides
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, divides)
BOOST_MPL_AUX_NA_SPEC2(2, 5, divides)
}}

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -60,21 +60,55 @@ template< typename T > struct minus_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct minus2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct minus
: if_<
is_na<N3>
, minus2< N1,N2 >
, minus<
minus2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, minus
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct minus2
: minus_impl<
typename minus_tag<N1>::type
, typename minus_tag<N2>::type
>::template apply< N1,N2 >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, minus, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, minus
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, minus)
BOOST_MPL_AUX_NA_SPEC2(2, 5, minus)
}}

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -60,21 +60,55 @@ template< typename T > struct plus_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct plus2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct plus
: if_<
is_na<N3>
, plus2< N1,N2 >
, plus<
plus2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, plus
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct plus2
: plus_impl<
typename plus_tag<N1>::type
, typename plus_tag<N2>::type
>::template apply< N1,N2 >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, plus, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, plus
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, plus)
BOOST_MPL_AUX_NA_SPEC2(2, 5, plus)
}}

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type

View File

@@ -60,21 +60,55 @@ template< typename T > struct times_tag
typedef typename T::tag type;
};
/// forward declaration
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct times2;
template<
typename BOOST_MPL_AUX_NA_PARAM(N1)
, typename BOOST_MPL_AUX_NA_PARAM(N2)
, typename N3 = na, typename N4 = na, typename N5 = na
>
struct times
: if_<
is_na<N3>
, times2< N1,N2 >
, times<
times2< N1,N2 >
, N3, N4, N5
>
>::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, times
, ( N1, N2, N3, N4, N5 )
)
};
template<
typename N1
, typename N2
>
struct times2
: times_impl<
typename times_tag<N1>::type
, typename times_tag<N2>::type
>::template apply< N1,N2 >::type
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, times, (N1, N2))
BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
5
, times
, ( N1, N2, na, na, na )
)
};
BOOST_MPL_AUX_NA_SPEC2(2, 2, times)
BOOST_MPL_AUX_NA_SPEC2(2, 5, times)
}}

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct equal_to
: equal_to_impl<
typename equal_to_tag<N1>::type
, typename equal_to_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater
: greater_impl<
typename greater_tag<N1>::type
, typename greater_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct greater_equal
: greater_equal_impl<
typename greater_equal_tag<N1>::type
, typename greater_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less
: less_impl<
typename less_tag<N1>::type
, typename less_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct less_equal
: less_equal_impl<
typename less_equal_tag<N1>::type
, typename less_equal_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct modulus
: modulus_impl<
typename modulus_tag<N1>::type
, typename modulus_tag<N2>::type

View File

@@ -65,6 +65,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct not_equal_to
: not_equal_to_impl<
typename not_equal_to_tag<N1>::type
, typename not_equal_to_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_left
: shift_left_impl<
typename shift_left_tag<N1>::type
, typename shift_left_tag<N2>::type

View File

@@ -66,6 +66,7 @@ template<
, typename BOOST_MPL_AUX_NA_PARAM(N2)
>
struct shift_right
: shift_right_impl<
typename shift_right_tag<N1>::type
, typename shift_right_tag<N2>::type