Index: boost/mpl/has_xxx.hpp =================================================================== --- boost/mpl/has_xxx.hpp (revision 46073) +++ boost/mpl/has_xxx.hpp (working copy) @@ -157,11 +157,13 @@ // applied to partial specialization to fix some apparently random failures // (thanks to Daniel Wallin for researching this!) -namespace boost { namespace mpl { namespace aux { -template< typename T > struct msvc71_sfinae_helper { typedef void type; }; -}}} - # define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ +template< typename T > \ +struct BOOST_PP_CAT(trait, _msvc_sfinae_helper) \ +{ \ + typedef void type; \ +};\ +\ template< typename T, typename U = void > \ struct BOOST_PP_CAT(trait,_impl_) \ { \ @@ -172,7 +174,7 @@ template< typename T > \ struct BOOST_PP_CAT(trait,_impl_)< \ T \ - , typename boost::mpl::aux::msvc71_sfinae_helper< typename T::name >::type \ + , typename BOOST_PP_CAT(trait, _msvc_sfinae_helper)< typename T::name >::type \ > \ { \ BOOST_STATIC_CONSTANT(bool, value = true); \