/usr/include/stxxl/bits/compat
Edit: /usr/include/stxxl/bits/compat/type_traits.h (2204B)
/***************************************************************************
* include/stxxl/bits/compat/type_traits.h
*
* Part of the STXXL. See http://stxxl.sourceforge.net
*
* Copyright (C) 2009-2011 Andreas Beckmann
*
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
**************************************************************************/
#ifndef STXXL_COMPAT_TYPE_TRAITS_HEADER
#define STXXL_COMPAT_TYPE_TRAITS_HEADER
#include
#include
#if __cplusplus >= 201103L
#include
#elif defined(__GNUG__) && (__GNUC__ >= 4)
#include
#elif STXXL_BOOST_CONFIG
#include
#endif
STXXL_BEGIN_NAMESPACE
namespace compat {
#if __cplusplus >= 201103L
using std::remove_const;
#elif defined(__GNUG__) && (__GNUC__ >= 4)
using std::tr1::remove_const;
#elif STXXL_BOOST_CONFIG
using boost::remove_const;
#else
template
struct remove_const
{
typedef Type type;
};
template
struct remove_const
{
typedef Type type;
};
#endif
#if defined(__GNUG__) && ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100) < 40300)
// That is a small subset of what GCC 4.3 does:
// Utility for finding the signed versions of unsigned integral types.
template
struct _make_signed
{
typedef Type type;
};
template <>
struct _make_signed
{
typedef signed char type;
};
template <>
struct _make_signed
{
typedef signed char type;
};
template <>
struct _make_signed
{
typedef signed short type;
};
template <>
struct _make_signed
{
typedef signed int type;
};
template <>
struct _make_signed
{
typedef signed long type;
};
template <>
struct _make_signed
{
typedef signed long long type;
};
template
struct make_signed
{
typedef typename _make_signed::type type;
};
#endif
} // namespace compat
STXXL_END_NAMESPACE
#endif // !STXXL_COMPAT_TYPE_TRAITS_HEADER