13 #ifndef STXXL_COMPAT_TYPE_TRAITS_HEADER
14 #define STXXL_COMPAT_TYPE_TRAITS_HEADER
19 #if defined(__GXX_EXPERIMENTAL_CXX0X__)
20 #include <type_traits>
21 #elif defined(__GNUG__) && (__GNUC__ >= 4)
22 #include <tr1/type_traits>
23 #elif STXXL_BOOST_CONFIG
24 #include <boost/type_traits/remove_const.hpp>
32 #if defined(__GXX_EXPERIMENTAL_CXX0X__)
33 using std::remove_const;
34 #elif defined(__GNUG__) && (__GNUC__ >= 4)
35 using std::tr1::remove_const;
36 #elif STXXL_BOOST_CONFIG
37 using boost::remove_const;
39 template <
typename _Tp>
45 template <
typename _Tp>
52 #if defined(__GNUG__) && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) < 40300)
56 template <
typename _Tp>
63 struct __make_signed<char>
65 typedef signed char __type;
69 struct __make_signed<unsigned char>
71 typedef signed char __type;
75 struct __make_signed<unsigned short>
77 typedef signed short __type;
81 struct __make_signed<unsigned int>
83 typedef signed int __type;
87 struct __make_signed<unsigned long>
89 typedef signed long __type;
93 struct __make_signed<unsigned long long>
95 typedef signed long long __type;
99 template <
typename _Tp>
102 typedef typename __make_signed<_Tp>::__type type;
110 #endif // !STXXL_COMPAT_TYPE_TRAITS_HEADER
#define STXXL_BEGIN_NAMESPACE
#define STXXL_END_NAMESPACE