--- a/boost/mpl/has_xxx.hpp.orig 2011-11-18 13:45:00.000000000 +0100 +++ b/boost/mpl/has_xxx.hpp 2011-11-18 13:47:19.000000000 +0100 @@ -341,7 +341,7 @@ ) \ /**/ -# if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION +# if !defined(BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION) || !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION # define BOOST_MPL_HAS_MEMBER_REJECT(args, member_macro) \ template< typename V > \ static boost::mpl::aux::no_tag \ @@ -354,7 +354,7 @@ /**/ # endif -# if !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES +# if !defined(BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES) || !BOOST_MPL_HAS_XXX_NO_WRAPPED_TYPES # define BOOST_MPL_HAS_MEMBER_MULTI_ACCEPT(z, n, args) \ template< typename V > \ static boost::mpl::aux::yes_tag \ @@ -383,7 +383,7 @@ /**/ # endif -# if !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION +# if !defined(BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION) || !BOOST_MPL_HAS_XXX_NO_EXPLICIT_TEST_FUNCTION # define BOOST_MPL_HAS_MEMBER_TEST(args) \ sizeof(BOOST_MPL_HAS_MEMBER_INTROSPECTION_TEST_NAME(args)< U >(0)) \ == sizeof(boost::mpl::aux::yes_tag) \ @@ -456,7 +456,7 @@ ) \ /**/ -# if BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE +# if defined(BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE) && BOOST_MPL_HAS_XXX_NEEDS_TEMPLATE_SFINAE # if !defined(BOOST_MPL_HAS_XXX_NEEDS_NAMESPACE_LEVEL_SUBSTITUTE) # if BOOST_WORKAROUND(BOOST_MSVC, <= 1400)