6 #ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP 7 #define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP 12 #if (BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1400)) \ 13 || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) \ 14 || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) \ 15 || BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3202)) \ 16 || BOOST_WORKAROUND(BOOST_INTEL_CXX_VERSION, BOOST_TESTED_AT(810)) ) 22 template <
bool B>
struct bool_;
42 using ::mpl_::integral_c;
43 using ::mpl_::integral_c_tag;
51 template <
class T, T val>
54 typedef mpl::integral_c_tag
tag;
65 operator const mpl::integral_c<T, val>& ()
const 67 static const char data[
sizeof(long)] = { 0 };
68 return dereference(
reinterpret_cast<const mpl::integral_c<T, val>*
>(&
data));
73 template <
class T, T val>
79 typedef mpl::integral_c_tag
tag;
90 operator const mpl::bool_<val>& ()
const 92 static const char data = 0;
93 return dereference(
reinterpret_cast<const mpl::bool_<val>*
>(&data));
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
static T & dereference(T *p)
integral_constant< bool, true > true_type
integral_constant< T, val > type
integral_constant< bool, false > false_type
integral_constant< bool, val > type
static U & dereference(U *p)