diff --git a/include/boost/mpl/aux_/arithmetic_op.hpp b/include/boost/mpl/aux_/arithmetic_op.hpp index 3dbf92a..4814942 100644 --- a/include/boost/mpl/aux_/arithmetic_op.hpp +++ b/include/boost/mpl/aux_/arithmetic_op.hpp @@ -61,8 +61,9 @@ struct AUX778076_OP_IMPL_NAME typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + AUX778076_OP_TOKEN BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > #else : aux::BOOST_PP_CAT(BOOST_PP_CAT(msvc_,AUX778076_OP_PREFIX),_impl)< diff --git a/include/boost/mpl/aux_/comparison_op.hpp b/include/boost/mpl/aux_/comparison_op.hpp index e8d01eb..f144f06 100644 --- a/include/boost/mpl/aux_/comparison_op.hpp +++ b/include/boost/mpl/aux_/comparison_op.hpp @@ -43,12 +43,15 @@ namespace boost { namespace mpl { // MSVC workaround: implement less in terms of greater #if 0 AUX778076_OP_TOKEN 1 && !(1 AUX778076_OP_TOKEN 0) && !(0 AUX778076_OP_TOKEN 0) # define AUX778076_OP(N1, N2) \ - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) \ + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) \ + > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) \ + ) \ /**/ #else # define AUX778076_OP(N1, N2) \ - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value \ - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(N2)::value ) \ + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) \ + AUX778076_OP_TOKEN BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) \ + ) \ /**/ #endif diff --git a/include/boost/mpl/aux_/ice_cast.hpp b/include/boost/mpl/aux_/ice_cast.hpp deleted file mode 100644 index 3079f38..0000000 --- a/include/boost/mpl/aux_/ice_cast.hpp +++ /dev/null @@ -1,28 +0,0 @@ - -#ifndef BOOST_MPL_AUX_ICE_CAST_HPP_INCLUDED -#define BOOST_MPL_AUX_ICE_CAST_HPP_INCLUDED - -// Copyright Aleksey Gurtovoy 2001-2004 -// -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// See http://www.boost.org/libs/mpl for documentation. - -// $Source$ -// $Date$ -// $Revision$ - -#include - -#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \ - || BOOST_WORKAROUND(__GNUC__, < 3) -# define BOOST_MPL_AUX_ICE_CAST(T, expr) (T)(expr) -#elif BOOST_WORKAROUND(__MWERKS__, <= 0x3001) -# define BOOST_MPL_AUX_ICE_CAST(T, expr) (T)(expr) -#else -# define BOOST_MPL_AUX_ICE_CAST(T, expr) static_cast(expr) -#endif - -#endif // BOOST_MPL_AUX_ICE_CAST_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/numeric_op.hpp b/include/boost/mpl/aux_/numeric_op.hpp index f4c566f..428b81b 100644 --- a/include/boost/mpl/aux_/numeric_op.hpp +++ b/include/boost/mpl/aux_/numeric_op.hpp @@ -85,7 +85,9 @@ struct AUX778076_OP_IMPL_NAME > struct AUX778076_OP_IMPL_NAME : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) #endif , aux::cast2nd_impl< AUX778076_OP_IMPL_NAME,Tag1,Tag2 > , aux::cast1st_impl< AUX778076_OP_IMPL_NAME,Tag1,Tag2 > @@ -93,7 +95,7 @@ struct AUX778076_OP_IMPL_NAME { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct AUX778076_OP_IMPL_NAME { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/bcc/bitand.hpp b/include/boost/mpl/aux_/preprocessed/bcc/bitand.hpp index 642f042..4ab1cfa 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/bitor.hpp b/include/boost/mpl/aux_/preprocessed/bcc/bitor.hpp index 4ccbe89..24d7e78 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp index 73b519e..4957eae 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/divides.hpp b/include/boost/mpl/aux_/preprocessed/bcc/divides.hpp index c963f62..cd88010 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp index bb051d6..054ba50 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/greater.hpp b/include/boost/mpl/aux_/preprocessed/bcc/greater.hpp index 73bbaad..db35cc9 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp index d52e43e..39463d5 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/less.hpp b/include/boost/mpl/aux_/preprocessed/bcc/less.hpp index 75997da..b18dca1 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp index ed8aae1..754bb81 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/minus.hpp b/include/boost/mpl/aux_/preprocessed/bcc/minus.hpp index 7439877..4377853 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/modulus.hpp b/include/boost/mpl/aux_/preprocessed/bcc/modulus.hpp index e99421b..71c6c5b 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp index 39af532..ec8b071 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/plus.hpp b/include/boost/mpl/aux_/preprocessed/bcc/plus.hpp index 489dd41..35bd23e 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp index c11fe41..95347af 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp index 5867998..67bf8bc 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc/times.hpp b/include/boost/mpl/aux_/preprocessed/bcc/times.hpp index 3b77dae..6fa5bdd 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp index 642f042..4ab1cfa 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp index 4ccbe89..24d7e78 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp index 73b519e..4957eae 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/divides.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/divides.hpp index c963f62..cd88010 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp index bb051d6..054ba50 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/greater.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/greater.hpp index 73bbaad..db35cc9 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp index d52e43e..39463d5 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/less.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/less.hpp index 75997da..b18dca1 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp index ed8aae1..754bb81 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/minus.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/minus.hpp index 7439877..4377853 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp index e99421b..71c6c5b 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp index 39af532..ec8b071 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/plus.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/plus.hpp index 489dd41..35bd23e 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp index c11fe41..95347af 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp index 5867998..67bf8bc 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/bcc551/times.hpp b/include/boost/mpl/aux_/preprocessed/bcc551/times.hpp index 3b77dae..6fa5bdd 100644 --- a/include/boost/mpl/aux_/preprocessed/bcc551/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/bcc551/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/bitand.hpp b/include/boost/mpl/aux_/preprocessed/dmc/bitand.hpp index 642f042..4ab1cfa 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/bitor.hpp b/include/boost/mpl/aux_/preprocessed/dmc/bitor.hpp index 4ccbe89..24d7e78 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp index 73b519e..4957eae 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/divides.hpp b/include/boost/mpl/aux_/preprocessed/dmc/divides.hpp index c963f62..cd88010 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp index bb051d6..054ba50 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/greater.hpp b/include/boost/mpl/aux_/preprocessed/dmc/greater.hpp index 73bbaad..db35cc9 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp index d52e43e..39463d5 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/less.hpp b/include/boost/mpl/aux_/preprocessed/dmc/less.hpp index 75997da..b18dca1 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp index ed8aae1..754bb81 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/minus.hpp b/include/boost/mpl/aux_/preprocessed/dmc/minus.hpp index 7439877..4377853 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/modulus.hpp b/include/boost/mpl/aux_/preprocessed/dmc/modulus.hpp index e99421b..71c6c5b 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp index 39af532..ec8b071 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/plus.hpp b/include/boost/mpl/aux_/preprocessed/dmc/plus.hpp index 489dd41..35bd23e 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp index c11fe41..95347af 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp index 5867998..67bf8bc 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/dmc/times.hpp b/include/boost/mpl/aux_/preprocessed/dmc/times.hpp index 3b77dae..6fa5bdd 100644 --- a/include/boost/mpl/aux_/preprocessed/dmc/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/dmc/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/bitand.hpp b/include/boost/mpl/aux_/preprocessed/gcc/bitand.hpp index 642f042..4ab1cfa 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/bitor.hpp b/include/boost/mpl/aux_/preprocessed/gcc/bitor.hpp index 4ccbe89..24d7e78 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp index 73b519e..4957eae 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/divides.hpp b/include/boost/mpl/aux_/preprocessed/gcc/divides.hpp index c963f62..cd88010 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp index bb051d6..054ba50 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp b/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp index 73bbaad..db35cc9 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp index d52e43e..39463d5 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/less.hpp b/include/boost/mpl/aux_/preprocessed/gcc/less.hpp index 75997da..b18dca1 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp index ed8aae1..754bb81 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp b/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp index 7439877..4377853 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/modulus.hpp b/include/boost/mpl/aux_/preprocessed/gcc/modulus.hpp index e99421b..71c6c5b 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp index 39af532..ec8b071 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp b/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp index 489dd41..35bd23e 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp index c11fe41..95347af 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp index 5867998..67bf8bc 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/gcc/times.hpp b/include/boost/mpl/aux_/preprocessed/gcc/times.hpp index 3b77dae..6fa5bdd 100644 --- a/include/boost/mpl/aux_/preprocessed/gcc/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/gcc/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp index 4285109..bb4b5ee 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp @@ -22,14 +22,13 @@ template< struct bitand_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp index 9d8751c..6ad586b 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp @@ -22,14 +22,13 @@ template< struct bitor_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp index 06d75f2..ba3ffba 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp @@ -22,14 +22,13 @@ template< struct bitxor_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/divides.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/divides.hpp index ada935e..1e0ad81 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/divides.hpp @@ -21,14 +21,13 @@ template< struct divides_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp index eb292cc..19d6bed 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp @@ -21,14 +21,13 @@ template< struct equal_to_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/greater.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/greater.hpp index f646c38..20ce579 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/greater.hpp @@ -21,14 +21,13 @@ template< struct greater_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct greater_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp index 360a129..e157687 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp @@ -21,14 +21,13 @@ template< struct greater_equal_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/less.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/less.hpp index f4b8701..af64589 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/less.hpp @@ -21,14 +21,13 @@ template< struct less_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct less_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > - BOOST_MPL_AUX_VALUE_WKND(N1)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp index c617b8e..4c18dc8 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp @@ -21,14 +21,13 @@ template< struct less_equal_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/minus.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/minus.hpp index 2bceea4..f4edfc9 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/minus.hpp @@ -21,14 +21,13 @@ template< struct minus_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp index 36f066f..1394bc3 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp @@ -21,14 +21,13 @@ template< struct modulus_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp index 20cec69..f7aba15 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp @@ -21,14 +21,13 @@ template< struct not_equal_to_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/plus.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/plus.hpp index 5b8ebde..34ba64d 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/plus.hpp @@ -21,14 +21,13 @@ template< struct plus_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp index 37b13ff..3933ac9 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp @@ -22,14 +22,13 @@ template< struct shift_left_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -100,13 +99,12 @@ struct msvc_shift_left_impl template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply - + template< typename N, typename S > struct apply : aux::msvc_shift_left_impl< typename N::value_type - , typename Shift::value_type + , typename S::value_type , N::value - , Shift::value + , S::value >::type { diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp index e58a457..87b4e7a 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp @@ -22,14 +22,13 @@ template< struct shift_right_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -100,13 +99,12 @@ struct msvc_shift_right_impl template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply - + template< typename N, typename S > struct apply : aux::msvc_shift_right_impl< typename N::value_type - , typename Shift::value_type + , typename S::value_type , N::value - , Shift::value + , S::value >::type { diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/times.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/times.hpp index 7c9d987..0b8daa4 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc60/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc60/times.hpp @@ -21,14 +21,13 @@ template< struct times_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp index f3ca044..acf3dbd 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp @@ -22,14 +22,13 @@ template< struct bitand_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp index f186187..452c5ad 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp @@ -22,14 +22,13 @@ template< struct bitor_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp index a8ebda0..c50bb9f 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp @@ -22,14 +22,13 @@ template< struct bitxor_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/divides.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/divides.hpp index 8260f85..43fdcfa 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/divides.hpp @@ -21,14 +21,13 @@ template< struct divides_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp index 50bb01f..7950880 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp @@ -21,14 +21,13 @@ template< struct equal_to_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/greater.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/greater.hpp index b37a615..39ffd44 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/greater.hpp @@ -21,14 +21,13 @@ template< struct greater_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct greater_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp index ab3da25..f2b6d19 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp @@ -21,14 +21,13 @@ template< struct greater_equal_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/less.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/less.hpp index e553b6e..a2e5f3a 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/less.hpp @@ -21,14 +21,13 @@ template< struct less_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct less_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > - BOOST_MPL_AUX_VALUE_WKND(N1)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp index f32c200..c2e65e7 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp @@ -21,14 +21,13 @@ template< struct less_equal_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/minus.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/minus.hpp index 6d9bc12..ac68272 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/minus.hpp @@ -21,14 +21,13 @@ template< struct minus_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp index 992e497..b5093c3 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp @@ -21,14 +21,13 @@ template< struct modulus_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp index 33a1ccd..42808c3 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp @@ -21,14 +21,13 @@ template< struct not_equal_to_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -93,8 +92,8 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { enum { value = - ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) }; typedef bool_ type; }; diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/plus.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/plus.hpp index 64974d2..d1b442b 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/plus.hpp @@ -21,14 +21,13 @@ template< struct plus_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp index 57b8318..fa9ebcb 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp @@ -22,14 +22,13 @@ template< struct shift_left_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -100,13 +99,12 @@ struct msvc_shift_left_impl template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply - + template< typename N, typename S > struct apply : aux::msvc_shift_left_impl< typename N::value_type - , typename Shift::value_type + , typename S::value_type , N::value - , Shift::value + , S::value >::type { diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp index a5b7bc3..39280e3 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp @@ -22,14 +22,13 @@ template< struct shift_right_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -100,13 +99,12 @@ struct msvc_shift_right_impl template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply - + template< typename N, typename S > struct apply : aux::msvc_shift_right_impl< typename N::value_type - , typename Shift::value_type + , typename S::value_type , N::value - , Shift::value + , S::value >::type { diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/times.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/times.hpp index fe09e55..5efba8e 100644 --- a/include/boost/mpl/aux_/preprocessed/msvc70/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/msvc70/times.hpp @@ -21,14 +21,13 @@ template< struct times_impl : if_c< ( tag1_ > tag2_ ) - , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > > { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp index 642f042..4ab1cfa 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp index 4ccbe89..24d7e78 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp index 73b519e..4957eae 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/divides.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/divides.hpp index c963f62..cd88010 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp index bb051d6..054ba50 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/greater.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/greater.hpp index 73bbaad..db35cc9 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp index d52e43e..39463d5 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/less.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/less.hpp index 75997da..b18dca1 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp index ed8aae1..754bb81 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/minus.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/minus.hpp index 7439877..4377853 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp index e99421b..71c6c5b 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp index 39af532..ec8b071 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/plus.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/plus.hpp index 489dd41..35bd23e 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp index c11fe41..95347af 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp index 5867998..67bf8bc 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/times.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/times.hpp index 3b77dae..6fa5bdd 100644 --- a/include/boost/mpl/aux_/preprocessed/mwcw/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/mwcw/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp index d004083..a0b7a01 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -88,8 +90,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp index e9cc382..9a77014 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -88,8 +90,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp index a879cb8..89204d4 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -88,8 +90,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp index 0f33c6c..1a9baa5 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp index b30e1f3..fe9daa1 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp index f2f25f7..1abf291 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp index c13fcb8..8442d07 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/less.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/less.hpp index 69689ac..805edc9 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp index 5018dcb..0f5078b 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp index 226bb21..20a5d8a 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp index 965383b..b2e9f01 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp index a0ce6e1..e98adfb 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp index 4a56b78..b3ec297 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp index 57435e5..0351696 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp index 51538c9..620cc83 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/times.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/times.hpp index 0894e17..f852452 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ctps/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp index 642f042..4ab1cfa 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp index 4ccbe89..24d7e78 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp index 73b519e..4957eae 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -134,8 +136,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp index c963f62..cd88010 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp index bb051d6..054ba50 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp index 73bbaad..db35cc9 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp index d52e43e..39463d5 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/less.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/less.hpp index 75997da..b18dca1 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp index ed8aae1..754bb81 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp index 7439877..4377853 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp index e99421b..71c6c5b 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -87,8 +89,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp index 39af532..ec8b071 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -83,7 +85,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp index 489dd41..35bd23e 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp index c11fe41..95347af 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp index 5867998..67bf8bc 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,12 +83,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/no_ttp/times.hpp b/include/boost/mpl/aux_/preprocessed/no_ttp/times.hpp index 3b77dae..6fa5bdd 100644 --- a/include/boost/mpl/aux_/preprocessed/no_ttp/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/no_ttp/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -133,8 +135,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/bitand.hpp b/include/boost/mpl/aux_/preprocessed/plain/bitand.hpp index 3ddc7a6..53edc22 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/bitand.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/bitand.hpp @@ -18,7 +18,9 @@ template< > struct bitand_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitand_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitand_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitand_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -129,8 +131,9 @@ struct bitand_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - & BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + & BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/bitor.hpp b/include/boost/mpl/aux_/preprocessed/plain/bitor.hpp index cfc831d..c3abd9e 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/bitor.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/bitor.hpp @@ -18,7 +18,9 @@ template< > struct bitor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -129,8 +131,9 @@ struct bitor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - | BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + | BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/bitxor.hpp b/include/boost/mpl/aux_/preprocessed/plain/bitxor.hpp index 27875f1..d18b198 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/bitxor.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/bitxor.hpp @@ -18,7 +18,9 @@ template< > struct bitxor_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< bitxor_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct bitxor_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct bitxor_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -129,8 +131,9 @@ struct bitxor_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - ^ BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + ^ BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/divides.hpp b/include/boost/mpl/aux_/preprocessed/plain/divides.hpp index 927db3f..85f67b0 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/divides.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/divides.hpp @@ -17,7 +17,9 @@ template< > struct divides_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< divides_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct divides_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct divides_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -128,8 +130,9 @@ struct divides_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - / BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + / BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/equal_to.hpp b/include/boost/mpl/aux_/preprocessed/plain/equal_to.hpp index f1d26e9..21da51f 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/equal_to.hpp @@ -17,7 +17,9 @@ template< > struct equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,7 +83,7 @@ struct equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value == BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) == BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/greater.hpp b/include/boost/mpl/aux_/preprocessed/plain/greater.hpp index 4621d5c..69e7574 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/greater.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/greater.hpp @@ -17,7 +17,9 @@ template< > struct greater_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,7 +83,7 @@ struct greater_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value > BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp b/include/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp index 9cee01b..d29eef9 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/greater_equal.hpp @@ -17,7 +17,9 @@ template< > struct greater_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< greater_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct greater_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct greater_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,7 +83,7 @@ struct greater_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value >= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) >= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/less.hpp b/include/boost/mpl/aux_/preprocessed/plain/less.hpp index a632b14..55fdbd5 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/less.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/less.hpp @@ -17,7 +17,9 @@ template< > struct less_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,7 +83,7 @@ struct less_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N2)::value > BOOST_MPL_AUX_VALUE_WKND(N1)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) > BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/less_equal.hpp b/include/boost/mpl/aux_/preprocessed/plain/less_equal.hpp index a9869f7..a7c5c68 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/less_equal.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/less_equal.hpp @@ -17,7 +17,9 @@ template< > struct less_equal_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< less_equal_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct less_equal_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct less_equal_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,7 +83,7 @@ struct less_equal_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value <= BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) <= BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/minus.hpp b/include/boost/mpl/aux_/preprocessed/plain/minus.hpp index 4e80b1c..d2b9478 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/minus.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/minus.hpp @@ -17,7 +17,9 @@ template< > struct minus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< minus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct minus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct minus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -128,8 +130,9 @@ struct minus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - - BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + - BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/modulus.hpp b/include/boost/mpl/aux_/preprocessed/plain/modulus.hpp index 1e51910..f42e68a 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/modulus.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/modulus.hpp @@ -17,7 +17,9 @@ template< > struct modulus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< modulus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct modulus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct modulus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -85,8 +87,9 @@ struct modulus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - % BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + % BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp b/include/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp index 4237305..d0358af 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp @@ -17,7 +17,9 @@ template< > struct not_equal_to_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< not_equal_to_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct not_equal_to_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct not_equal_to_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -81,7 +83,7 @@ struct not_equal_to_impl< integral_c_tag,integral_c_tag > { template< typename N1, typename N2 > struct apply - : bool_< ( BOOST_MPL_AUX_VALUE_WKND(N1)::value != BOOST_MPL_AUX_VALUE_WKND(N2)::value ) > + : bool_< ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) != BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) ) > { }; }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/plus.hpp b/include/boost/mpl/aux_/preprocessed/plain/plus.hpp index 03af077..ecb9183 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/plus.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/plus.hpp @@ -17,7 +17,9 @@ template< > struct plus_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< plus_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct plus_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct plus_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -128,8 +130,9 @@ struct plus_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - + BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + + BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/shift_left.hpp b/include/boost/mpl/aux_/preprocessed/plain/shift_left.hpp index e628fd5..241bbc3 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/shift_left.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/shift_left.hpp @@ -18,7 +18,9 @@ template< > struct shift_left_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_left_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_left_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_left_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -79,12 +81,13 @@ namespace boost { namespace mpl { template<> struct shift_left_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - << BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + << BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/shift_right.hpp b/include/boost/mpl/aux_/preprocessed/plain/shift_right.hpp index 97f000f..2ac0f6f 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/shift_right.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/shift_right.hpp @@ -18,7 +18,9 @@ template< > struct shift_right_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< shift_right_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -26,7 +28,7 @@ struct shift_right_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct shift_right_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -79,12 +81,13 @@ namespace boost { namespace mpl { template<> struct shift_right_impl< integral_c_tag,integral_c_tag > { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - >> BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + >> BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > { }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/times.hpp b/include/boost/mpl/aux_/preprocessed/plain/times.hpp index de4f6c1..a84f0ff 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/times.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/times.hpp @@ -17,7 +17,9 @@ template< > struct times_impl : if_c< - ( Tag1::value > Tag2::value ) + ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1) + > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2) + ) , aux::cast2nd_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > , aux::cast1st_impl< times_impl< Tag1,Tag2 >,Tag1, Tag2 > @@ -25,7 +27,7 @@ struct times_impl { }; -/// for Digital Mars C++/compilers with no CTPS support +/// for Digital Mars C++/compilers with no CTPS/TTP support template<> struct times_impl< na,na > { template< typename U1, typename U2 > struct apply @@ -128,8 +130,9 @@ struct times_impl< integral_c_tag,integral_c_tag > typename N1::value_type , typename N2::value_type >::type - , ( BOOST_MPL_AUX_VALUE_WKND(N1)::value - * BOOST_MPL_AUX_VALUE_WKND(N2)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N1::value_type, N1) + * BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N2::value_type, N2) + ) > { }; diff --git a/include/boost/mpl/aux_/shift_op.hpp b/include/boost/mpl/aux_/shift_op.hpp index 8dc9e7c..bcc50ec 100644 --- a/include/boost/mpl/aux_/shift_op.hpp +++ b/include/boost/mpl/aux_/shift_op.hpp @@ -55,19 +55,20 @@ struct BOOST_PP_CAT(BOOST_PP_CAT(msvc_,AUX778076_OP_PREFIX),_impl) template<> struct AUX778076_OP_IMPL_NAME { - template< typename N, typename Shift > struct apply + template< typename N, typename S > struct apply #if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) : integral_c< typename N::value_type - , ( BOOST_MPL_AUX_VALUE_WKND(N)::value - AUX778076_OP_TOKEN BOOST_MPL_AUX_VALUE_WKND(Shift)::value ) + , ( BOOST_MPL_AUX_NESTED_VALUE_WKND(typename N::value_type, N) + AUX778076_OP_TOKEN BOOST_MPL_AUX_NESTED_VALUE_WKND(typename S::value_type, S) + ) > #else : aux::BOOST_PP_CAT(BOOST_PP_CAT(msvc_,AUX778076_OP_NAME),_impl)< typename N::value_type - , typename Shift::value_type + , typename S::value_type , N::value - , Shift::value + , S::value >::type #endif { diff --git a/include/boost/mpl/aux_/value_wknd.hpp b/include/boost/mpl/aux_/value_wknd.hpp index 87069cd..a8d1809 100644 --- a/include/boost/mpl/aux_/value_wknd.hpp +++ b/include/boost/mpl/aux_/value_wknd.hpp @@ -14,8 +14,10 @@ // $Date$ // $Revision$ +#include #include #include +#include #if defined(BOOST_MPL_CFG_BCC_INTEGRAL_CONSTANTS) \ || defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG) @@ -60,4 +62,14 @@ BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE #endif +#if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) +# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ + BOOST_MPL_AUX_STATIC_CAST(T, C::value) \ +/**/ +#else +# define BOOST_MPL_AUX_NESTED_VALUE_WKND(T, C) \ + BOOST_MPL_AUX_VALUE_WKND(C)::value \ +/**/ +#endif + #endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED diff --git a/include/boost/mpl/integral_c.hpp b/include/boost/mpl/integral_c.hpp index 3ae5cc6..7c7252c 100644 --- a/include/boost/mpl/integral_c.hpp +++ b/include/boost/mpl/integral_c.hpp @@ -15,7 +15,6 @@ // $Revision$ #include -#include #include #include