13 #ifndef STXXL_HEADER__COMPAT_TYPE_TRAITS_H_ 14 #define STXXL_HEADER__COMPAT_TYPE_TRAITS_H_ 16 #if defined(__GXX_EXPERIMENTAL_CXX0X__) 17 #include <type_traits> 18 #elif defined(__GNUG__) && (__GNUC__ >= 4) 19 #include <tr1/type_traits> 20 #elif defined(STXXL_BOOST_CONFIG) 21 #include <boost/type_traits/remove_const.hpp> 24 #include <stxxl/bits/namespace.h> 27 __STXXL_BEGIN_NAMESPACE
31 #if defined(__GXX_EXPERIMENTAL_CXX0X__) 32 using std::remove_const;
33 #elif defined(__GNUG__) && (__GNUC__ >= 4) 34 using std::tr1::remove_const;
35 #elif defined(STXXL_BOOST_CONFIG) 36 using boost::remove_const;
38 template <
typename _Tp>
44 template <
typename _Tp>
45 struct remove_const<_Tp const>
51 #if defined(__GNUG__) && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) < 40300) 55 template <
typename _Tp>
62 struct __make_signed<char>
64 typedef signed char __type;
68 struct __make_signed<unsigned char>
70 typedef signed char __type;
74 struct __make_signed<unsigned short>
76 typedef signed short __type;
80 struct __make_signed<unsigned int>
82 typedef signed int __type;
86 struct __make_signed<unsigned long>
88 typedef signed long __type;
92 struct __make_signed<unsigned long long>
94 typedef signed long long __type;
98 template <
typename _Tp>
101 typedef typename __make_signed<_Tp>::__type type;
106 __STXXL_END_NAMESPACE
108 #endif // !STXXL_HEADER__COMPAT_TYPE_TRAITS_H_ Definition: shared_ptr.h:43