From 3837920af0545dc8e0a48563ddd4fc2efbf7c6cb Mon Sep 17 00:00:00 2001 From: Aleksey Gurtovoy Date: Mon, 13 Sep 2004 06:01:03 +0000 Subject: [PATCH] restrict MWCW workaround to MWCW only [SVN r25028] --- include/boost/mpl/assert.hpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/include/boost/mpl/assert.hpp b/include/boost/mpl/assert.hpp index 0871969..41ae091 100644 --- a/include/boost/mpl/assert.hpp +++ b/include/boost/mpl/assert.hpp @@ -285,6 +285,7 @@ enum { \ // BOOST_MPL_ASSERT_MSG( (pred::value), USER_PROVIDED_MESSAGE, (types) ) +#if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) # define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \ struct msg; \ typedef struct BOOST_PP_CAT(msg,__LINE__) : boost::mpl::assert_ \ @@ -296,9 +297,24 @@ enum { \ } BOOST_PP_CAT(mpl_assert_arg,__LINE__); \ enum { \ BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \ - boost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,__LINE__)::assert_arg() ) \ + boost::mpl::assertion<(c)>::failed( BOOST_PP_CAT(mpl_assert_arg,__LINE__)::assert_arg() ) \ ) \ }\ /**/ +#else +# define BOOST_MPL_ASSERT_MSG( c, msg, types_ ) \ + struct msg; \ + typedef struct BOOST_PP_CAT(msg,__LINE__) : boost::mpl::assert_ \ + { \ + static boost::mpl::failed ************ (msg::************ assert_arg()) types_ \ + { return 0; } \ + } BOOST_PP_CAT(mpl_assert_arg,__LINE__); \ + enum { \ + BOOST_PP_CAT(mpl_assertion_in_line_,__LINE__) = sizeof( \ + boost::mpl::assertion_failed<(c)>( BOOST_PP_CAT(mpl_assert_arg,__LINE__)::assert_arg() ) \ + ) \ + }\ +/**/ +#endif #endif // BOOST_MPL_ASSERT_HPP_INCLUDED