Merged revisions 49260 via svnmerge from

https://svn.boost.org/svn/boost/trunk

........
  r49260 | agurtovoy | 2008-10-10 16:59:29 -0500 (Fri, 10 Oct 2008) | 1 line
  
  has_xxx: Adjust MSVC 7.1/8.0 workaround (ticket #1317)
........


[SVN r49273]
This commit is contained in:
Aleksey Gurtovoy
2008-10-11 06:54:06 +00:00
parent 6ae9e83763
commit 638af6028b

View File

@@ -157,11 +157,13 @@ template<> struct trait<T> \
// 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 @@ struct BOOST_PP_CAT(trait,_impl_) \
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); \