9 #ifndef BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
10 #define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
17 #if defined( __CODEGEARC__ )
19 struct is_integral :
public integral_constant<bool, __is_integral(T)> {};
43 #ifndef BOOST_NO_INTRINSIC_WCHAR_T
52 #if (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
53 || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300))
55 template<>
struct is_integral<unsigned __int16> :
public true_type{};
56 template<>
struct is_integral<unsigned __int32> :
public true_type{};
57 template<>
struct is_integral<__int8> :
public true_type{};
58 template<>
struct is_integral<__int16> :
public true_type{};
59 template<>
struct is_integral<__int32> :
public true_type{};
61 template<>
struct is_integral<unsigned __int64> :
public true_type{};
62 template<>
struct is_integral<__int64> :
public true_type{};
66 # if defined(BOOST_HAS_LONG_LONG)
67 template<>
struct is_integral< ::boost::ulong_long_type> :
public true_type{};
68 template<>
struct is_integral< ::boost::long_long_type> :
public true_type{};
69 #elif defined(BOOST_HAS_MS_INT64)
70 template<>
struct is_integral<unsigned __int64> :
public true_type{};
71 template<>
struct is_integral<__int64> :
public true_type{};
74 #ifdef BOOST_HAS_INT128
75 template<>
struct is_integral<
boost::int128_type> :
public true_type{};
76 template<>
struct is_integral<
boost::uint128_type> :
public true_type{};
78 #ifndef BOOST_NO_CXX11_CHAR16_T
81 #ifndef BOOST_NO_CXX11_CHAR32_T
85 #endif // non-CodeGear implementation
89 #endif // BOOST_TT_IS_INTEGRAL_HPP_INCLUDED