Ticket #1317: boost_1_36_0-djw_has_xxx.patch

File boost_1_36_0-djw_has_xxx.patch, 1.0 KB (added by harris.pc@…, 14 years ago)

Patch described in my message

  • boost/mpl/has_xxx.hpp

     
    157157// applied to partial specialization to fix some apparently random failures
    158158// (thanks to Daniel Wallin for researching this!)
    159159
    160 namespace boost { namespace mpl { namespace aux {
    161 template< typename T > struct msvc71_sfinae_helper { typedef void type; };
    162 }}}
    163 
    164160#   define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \
     161template< typename T > \
     162struct BOOST_PP_CAT(trait, _msvc_sfinae_helper) \
     163{ \
     164    typedef void type; \
     165};\
     166\
    165167template< typename T, typename U = void > \
    166168struct BOOST_PP_CAT(trait,_impl_) \
    167169{ \
     
    172174template< typename T > \
    173175struct BOOST_PP_CAT(trait,_impl_)< \
    174176      T \
    175     , typename boost::mpl::aux::msvc71_sfinae_helper< typename T::name >::type \
     177    , typename BOOST_PP_CAT(trait, _msvc_sfinae_helper)< typename T::name >::type \
    176178    > \
    177179{ \
    178180    BOOST_STATIC_CONSTANT(bool, value = true); \