10 #ifndef BOOST_TT_IS_SIGNED_HPP_INCLUDED 11 #define BOOST_TT_IS_SIGNED_HPP_INCLUDED 13 #include <boost/type_traits/is_integral.hpp> 14 #include <boost/type_traits/remove_cv.hpp> 15 #include <boost/type_traits/is_enum.hpp> 16 #include <boost/type_traits/detail/ice_or.hpp> 19 #include <boost/type_traits/detail/bool_trait_def.hpp> 23 #if !defined( __CODEGEARC__ ) 27 #if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238) && !defined(BOOST_NO_INCLASS_MEMBER_INITIALIZATION) 38 static const no_cv_t
minus_one = (
static_cast<no_cv_t
>(-1));
39 static const no_cv_t
zero = (
static_cast<no_cv_t
>(0));
49 template <
bool integral_type>
73 ::boost::type_traits::ice_or<
74 ::boost::is_integral<T>::value,
75 ::boost::is_enum<T>::value>
::value 77 typedef typename selector::template rebind<T>
binder;
79 #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) 88 template <
class T>
struct is_signed_imp :
public false_type{};
89 template <>
struct is_signed_imp<signed char> :
public true_type{};
90 template <>
struct is_signed_imp<const signed char> :
public true_type{};
91 template <>
struct is_signed_imp<volatile signed char> :
public true_type{};
92 template <>
struct is_signed_imp<const volatile signed char> :
public true_type{};
94 template <>
struct is_signed_imp<const short> :
public true_type{};
95 template <>
struct is_signed_imp<volatile short> :
public true_type{};
96 template <>
struct is_signed_imp<const volatile short> :
public true_type{};
98 template <>
struct is_signed_imp<const int> :
public true_type{};
99 template <>
struct is_signed_imp<volatile int> :
public true_type{};
100 template <>
struct is_signed_imp<const volatile int> :
public true_type{};
102 template <>
struct is_signed_imp<const long> :
public true_type{};
103 template <>
struct is_signed_imp<volatile long> :
public true_type{};
104 template <>
struct is_signed_imp<const volatile long> :
public true_type{};
105 #ifdef BOOST_HAS_LONG_LONG 106 template <>
struct is_signed_imp<long long> :
public true_type{};
107 template <>
struct is_signed_imp<const long long> :
public true_type{};
108 template <>
struct is_signed_imp<volatile long long> :
public true_type{};
109 template <>
struct is_signed_imp<const volatile long long> :
public true_type{};
111 #if defined(CHAR_MIN) && (CHAR_MIN != 0) 113 template <>
struct is_signed_imp<const char> :
public true_type{};
114 template <>
struct is_signed_imp<volatile char> :
public true_type{};
115 template <>
struct is_signed_imp<const volatile char> :
public true_type{};
117 #if defined(WCHAR_MIN) && (WCHAR_MIN != 0) 118 template <>
struct is_signed_imp<wchar_t> :
public true_type{};
119 template <>
struct is_signed_imp<const wchar_t> :
public true_type{};
120 template <>
struct is_signed_imp<volatile wchar_t> :
public true_type{};
121 template <>
struct is_signed_imp<const volatile wchar_t> :
public true_type{};
128 #endif // !defined( __CODEGEARC__ ) 130 #if defined( __CODEGEARC__ ) 131 BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,__is_signed(T))
138 #include <boost/type_traits/detail/bool_trait_undef.hpp> 140 #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
is_signed_helper< T > type
remove_cv< T >::type no_cv_t
is_signed_select_helper< ::boost::type_traits::ice_or< ::boost::is_integral< T >::value,::boost::is_enum< T >::value >::value > selector
pvd::StructureConstPtr type
remove_cv< T >::type no_cv_t
static const no_cv_t minus_one
static const no_cv_t zero
selector::template rebind< T > binder
#define BOOST_STATIC_CONSTANT(type, assignment)