MIPSpro 7.3 workarounds

[SVN r24944]
This commit is contained in:
Aleksey Gurtovoy
2004-09-07 02:56:52 +00:00
parent 1a7a514fca
commit 15b5566796
167 changed files with 915 additions and 625 deletions

View File

@@ -61,8 +61,9 @@ struct AUX778076_OP_IMPL_NAME<integral_c_tag,integral_c_tag>
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)<

View File

@@ -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

View File

@@ -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 <boost/mpl/aux_/config/workaround.hpp>
#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<T>(expr)
#endif
#endif // BOOST_MPL_AUX_ICE_CAST_HPP_INCLUDED

View File

@@ -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>,Tag1,Tag2 >
, aux::cast1st_impl< AUX778076_OP_IMPL_NAME<Tag1,Tag2>,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<na,na>
{
template< typename U1, typename U2 > struct apply

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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) ) >
{
};
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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)
)
>
{
};

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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

View File

@@ -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

View File

@@ -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_<value> type;
};

View File

@@ -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

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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_<value> type;
};

View File

@@ -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

View File

@@ -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

View File

@@ -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_<value> type;
};

View File

@@ -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

View File

@@ -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
{

View File

@@ -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
{

View File

@@ -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

Some files were not shown because too many files have changed in this diff Show More