6 #ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED 7 #define FILE_boost_type_traits_integral_promotion_hpp_INCLUDED 18 namespace type_traits {
namespace detail {
34 #define BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(T) \ 35 template<> struct need_promotion<T> \ 36 : public integral_constant<bool, (sizeof(T) < sizeof(int))> {}; 40 #if (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \ 41 || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300)) 55 #if defined(BOOST_HAS_LONG_LONG) 58 #elif defined(BOOST_HAS_MS_INT64) 63 #undef BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE 66 #ifndef BOOST_NO_INTRINSIC_WCHAR_T 81 #define BOOST_TT_AUX_PROMOTE_FROM_INDEX(N,T) \ 82 template<> struct promote_from_index<N,0,0> { typedef T type; }; \ 83 template<> struct promote_from_index<N,0,1> { typedef T volatile type; }; \ 84 template<> struct promote_from_index<N,1,0> { typedef T const type; }; \ 85 template<> struct promote_from_index<N,1,1> { typedef T const volatile type; }; 90 BOOST_TT_AUX_PROMOTE_FROM_INDEX(3,
long )
91 BOOST_TT_AUX_PROMOTE_FROM_INDEX(4,
unsigned long)
99 #if defined(BOOST_HAS_LONG_LONG) 101 BOOST_TT_AUX_PROMOTE_FROM_INDEX(6,
boost::ulong_long_type)
102 #elif defined(BOOST_HAS_MS_INT64) 104 BOOST_TT_AUX_PROMOTE_FROM_INDEX(8,
unsigned __int64)
107 #undef BOOST_TT_AUX_PROMOTE_FROM_INDEX 111 #if !defined(BOOST_MSVC) 119 #define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \ 120 sized_type_for_promotion<I>::type promoted_index_tester(T); 124 #define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \ 125 char (&promoted_index_tester(T))[I]; 131 BOOST_TT_AUX_PROMOTED_INDEX_TESTER(3,
long )
132 BOOST_TT_AUX_PROMOTED_INDEX_TESTER(4,
unsigned long)
134 #if defined(BOOST_HAS_LONG_LONG) 136 BOOST_TT_AUX_PROMOTED_INDEX_TESTER(6,
boost::ulong_long_type)
137 #elif defined(BOOST_HAS_MS_INT64) 139 BOOST_TT_AUX_PROMOTED_INDEX_TESTER(8,
unsigned __int64)
142 #undef BOOST_TT_AUX_PROMOTED_INDEX_TESTER 178 #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 186 #endif // #ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
#define BOOST_DEDUCED_TYPENAME
typename integral_promotion< T >::type integral_promotion_t
#define BOOST_STATIC_CONSTANT(type, assignment)