--- boost/mpl/has_xxx.hpp 2005-06-15 12:43:23.000000000 +0200 +++ /Users/troyer/Desktop/has_xxx.hpp 2007-06-12 10:36:42.000000000 +0200 @@ -1,7 +1,6 @@ #ifndef BOOST_MPL_HAS_XXX_HPP_INCLUDED #define BOOST_MPL_HAS_XXX_HPP_INCLUDED - // Copyright Aleksey Gurtovoy 2002-2004 // Copyright David Abrahams 2002-2003 // @@ -183,21 +182,21 @@ # else // other SFINAE-capable compilers + struct gcc_3_2_wknd + { + template< typename U > + static boost::mpl::aux::yes_tag test( + boost::mpl::aux::type_wrapper const volatile* + , boost::mpl::aux::type_wrapper* = 0 + ); + + static boost::mpl::aux::no_tag test(...); + }; + # define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ template< typename T, typename fallback_ = boost::mpl::bool_ > \ struct trait \ { \ - struct gcc_3_2_wknd \ - { \ - template< typename U > \ - static boost::mpl::aux::yes_tag test( \ - boost::mpl::aux::type_wrapper const volatile* \ - , boost::mpl::aux::type_wrapper* = 0 \ - ); \ - \ - static boost::mpl::aux::no_tag test(...); \ - }; \ - \ typedef boost::mpl::aux::type_wrapper t_; \ BOOST_STATIC_CONSTANT(bool, value = \ sizeof(gcc_3_2_wknd::test(static_cast(0))) \