diff --git a/include/boost/mpl/arg.hpp b/include/boost/mpl/arg.hpp index 4cc9476..2af8d46 100644 --- a/include/boost/mpl/arg.hpp +++ b/include/boost/mpl/arg.hpp @@ -106,7 +106,8 @@ template<> struct arg { typedef BOOST_PP_CAT(U,i) type; #if !defined(__BORLANDC__) || (__BORLANDC__ > 0x561 && defined(BOOST_STRICT_CONFIG)) - BOOST_STATIC_ASSERT(!is_void_::value); + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); #endif }; }; @@ -127,7 +128,8 @@ template<> struct arg<-1> { typedef U1 type; #if !defined(__BORLANDC__) || (__BORLANDC__ > 0x561 && defined(BOOST_STRICT_CONFIG)) - BOOST_STATIC_ASSERT(!is_void_::value); + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); #endif }; }; diff --git a/include/boost/mpl/aux_/preprocessed/plain/arg.hpp b/include/boost/mpl/aux_/preprocessed/plain/arg.hpp index 4e5aa5e..e3c94c5 100644 --- a/include/boost/mpl/aux_/preprocessed/plain/arg.hpp +++ b/include/boost/mpl/aux_/preprocessed/plain/arg.hpp @@ -15,8 +15,9 @@ template<> struct arg<-1> struct apply { typedef U1 type; - BOOST_STATIC_ASSERT(!is_void_::value); - + private: + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); }; }; @@ -32,8 +33,8 @@ template<> struct arg<1> struct apply { typedef U1 type; - BOOST_STATIC_ASSERT(!is_void_::value); - + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); }; }; @@ -49,8 +50,8 @@ template<> struct arg<2> struct apply { typedef U2 type; - BOOST_STATIC_ASSERT(!is_void_::value); - + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); }; }; @@ -66,8 +67,8 @@ template<> struct arg<3> struct apply { typedef U3 type; - BOOST_STATIC_ASSERT(!is_void_::value); - + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); }; }; @@ -83,8 +84,8 @@ template<> struct arg<4> struct apply { typedef U4 type; - BOOST_STATIC_ASSERT(!is_void_::value); - + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); }; }; @@ -100,8 +101,8 @@ template<> struct arg<5> struct apply { typedef U5 type; - BOOST_STATIC_ASSERT(!is_void_::value); - + BOOST_STATIC_CONSTANT(bool, nv = !is_void_::value); + BOOST_STATIC_ASSERT(nv); }; };