Ticket #1292: mpl070930.diff
File mpl070930.diff, 4.5 KB (added by , 15 years ago) |
---|
-
D:/boost/svn/branches/bcbboost/boost/boost/mpl/aux_/config/overload_resolution.hpp
18 18 19 19 #if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ 20 20 && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 && ( BOOST_WORKAROUND(__BORLANDC__, < 0x 600) \21 && ( BOOST_WORKAROUND(__BORLANDC__, < 0x590) \ 22 22 || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ 23 23 ) 24 24 -
D:/boost/svn/branches/bcbboost/boost/boost/mpl/aux_/config/ttp.hpp
19 19 #include <boost/mpl/aux_/config/workaround.hpp> 20 20 21 21 #if !defined(BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ 22 && defined(BOOST_NO_TEMPLATE_TEMPLATES) 22 && ( defined(BOOST_NO_TEMPLATE_TEMPLATES) \ 23 || BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x590) ) \ 24 ) 23 25 24 26 # define BOOST_MPL_CFG_NO_TEMPLATE_TEMPLATE_PARAMETERS 25 27 -
D:/boost/svn/branches/bcbboost/boost/boost/mpl/aux_/config/ctps.hpp
19 19 20 20 #if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \ 21 21 && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 && BOOST_WORKAROUND(__BORLANDC__, < 0x 600)22 && BOOST_WORKAROUND(__BORLANDC__, < 0x582) 23 23 24 24 # define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC 25 25 -
D:/boost/svn/branches/bcbboost/boost/boost/mpl/has_xxx.hpp
26 26 27 27 #include <boost/preprocessor/cat.hpp> 28 28 29 #if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) ) 30 # include <boost/type_traits/is_class.hpp> 31 #endif 32 29 33 #if !defined(BOOST_MPL_CFG_NO_HAS_XXX) 30 34 31 35 # if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) … … 182 186 }; \ 183 187 /**/ 184 188 189 # elif BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT(0x590) ) 190 191 # define BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF(trait, trait_tester, name, default_) \ 192 template< typename T, bool IS_CLASS > \ 193 struct trait_tester \ 194 { \ 195 BOOST_STATIC_CONSTANT( bool, value = false ); \ 196 }; \ 197 template< typename T > \ 198 struct trait_tester< T, true > \ 199 { \ 200 struct trait_tester_impl \ 201 { \ 202 template < class U > \ 203 static int resolve( boost::mpl::aux::type_wrapper<U> const volatile * \ 204 , boost::mpl::aux::type_wrapper<typename U::name >* = 0 ); \ 205 static char resolve( ... ); \ 206 }; \ 207 typedef boost::mpl::aux::type_wrapper<T> t_; \ 208 BOOST_STATIC_CONSTANT( bool, value = ( sizeof( trait_tester_impl::resolve( static_cast< t_ * >(0) ) ) == sizeof(int) ) ); \ 209 }; \ 210 template< typename T, typename fallback_ = boost::mpl::bool_<default_> > \ 211 struct trait \ 212 { \ 213 BOOST_STATIC_CONSTANT( bool, value = (trait_tester< T, boost::is_class< T >::value >::value) ); \ 214 typedef boost::mpl::bool_< trait< T, fallback_ >::value > type; \ 215 }; 216 217 # define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \ 218 BOOST_MPL_HAS_XXX_TRAIT_NAMED_BCB_DEF( trait \ 219 , BOOST_PP_CAT(trait,_tester) \ 220 , name \ 221 , default_ ) \ 222 /**/ 223 185 224 # else // other SFINAE-capable compilers 186 225 187 226 # define BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, default_) \