diff --git a/include/boost/mpl/aux_/largest_int.hpp b/include/boost/mpl/aux_/largest_int.hpp index 466aa91..1d8018a 100644 --- a/include/boost/mpl/aux_/largest_int.hpp +++ b/include/boost/mpl/aux_/largest_int.hpp @@ -16,7 +16,7 @@ #include #include -#include +#include #include namespace boost { namespace mpl { namespace aux { @@ -38,8 +38,7 @@ template<> struct integral_rank : int_<10> {}; template<> struct integral_rank : int_<11> {}; template< typename T1, typename T2 > struct largest_int -#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ - && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) +#if !defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) : if_c< ( integral_rank::value >= integral_rank::value ) , T1 diff --git a/include/boost/mpl/negate.hpp b/include/boost/mpl/negate.hpp index 5037d39..b3c0c65 100644 --- a/include/boost/mpl/negate.hpp +++ b/include/boost/mpl/negate.hpp @@ -16,11 +16,11 @@ #include #include -#include #include #include -#include -#include +#include +#include +#include namespace boost { namespace mpl { @@ -52,11 +52,11 @@ struct negate BOOST_MPL_AUX_NA_SPEC(1, negate) -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) +#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) namespace aux { -template< typename T, T n > struct msvc_negate_impl +template< typename T, T n > struct negate_wknd { - enum msvc_wknd { value = -n }; + BOOST_STATIC_CONSTANT(T, value = -n); typedef integral_c type; }; } @@ -65,9 +65,9 @@ template< typename T, T n > struct msvc_negate_impl template<> struct negate_impl { -#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) +#if defined(BOOST_MPL_CFG_NO_NESTED_VALUE_ARITHMETIC) template< typename N > struct apply - : aux::msvc_negate_impl< typename N::value_type, N::value > + : aux::negate_wknd< typename N::value_type, N::value > #else template< typename N > struct apply : integral_c< typename N::value_type, (-N::value) >