File indexing completed on 2025-01-18 09:41:38
0001
0002 #ifndef BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
0003 #define BOOST_MPL_AUX_IS_MSVC_ETI_ARG_HPP_INCLUDED
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #include <boost/mpl/aux_/yes_no.hpp>
0018 #include <boost/mpl/aux_/config/eti.hpp>
0019 #include <boost/mpl/aux_/config/static_constant.hpp>
0020
0021 namespace boost { namespace mpl { namespace aux {
0022
0023 #if defined(BOOST_MPL_CFG_MSVC_ETI_BUG)
0024
0025 #if defined(BOOST_MPL_CFG_MSVC_60_ETI_BUG)
0026
0027 template< typename T >
0028 struct is_msvc_eti_arg
0029 {
0030 BOOST_STATIC_CONSTANT(bool, value = false);
0031 };
0032
0033 #else
0034
0035 struct eti_int_convertible
0036 {
0037 eti_int_convertible(int);
0038 };
0039
0040 template< typename T >
0041 struct is_msvc_eti_arg
0042 {
0043 static no_tag test(...);
0044 static yes_tag test(eti_int_convertible);
0045 static T& get();
0046
0047 BOOST_STATIC_CONSTANT(bool, value =
0048 sizeof(test(get())) == sizeof(yes_tag)
0049 );
0050 };
0051
0052 #endif
0053
0054 template<>
0055 struct is_msvc_eti_arg<int>
0056 {
0057 BOOST_STATIC_CONSTANT(bool, value = true);
0058 };
0059
0060 #endif
0061
0062 }}}
0063
0064 #endif