13 #ifndef STXXL_COMPAT_TYPE_TRAITS_HEADER
14 #define STXXL_COMPAT_TYPE_TRAITS_HEADER
19 #if __cplusplus >= 201103L
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>
31 #if __cplusplus >= 201103L
32 using std::remove_const;
33 #elif defined(__GNUG__) && (__GNUC__ >= 4)
34 using std::tr1::remove_const;
35 #elif STXXL_BOOST_CONFIG
36 using boost::remove_const;
38 template <
typename Type>
44 template <
typename Type>
51 #if defined(__GNUG__) && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) < 40300)
55 template <
typename Type>
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;
97 template <
typename Type>
100 typedef typename _make_signed<Type>::type type;
108 #endif // !STXXL_COMPAT_TYPE_TRAITS_HEADER
#define STXXL_BEGIN_NAMESPACE
#define STXXL_END_NAMESPACE