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 // applied to partial specialization to fix some apparently random failures
// (thanks to Daniel Wallin for researching this!) // (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_) \ # 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 > \ template< typename T, typename U = void > \
struct BOOST_PP_CAT(trait,_impl_) \ struct BOOST_PP_CAT(trait,_impl_) \
{ \ { \
@@ -172,7 +174,7 @@ struct BOOST_PP_CAT(trait,_impl_) \
template< typename T > \ template< typename T > \
struct BOOST_PP_CAT(trait,_impl_)< \ struct BOOST_PP_CAT(trait,_impl_)< \
T \ 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); \ BOOST_STATIC_CONSTANT(bool, value = true); \