/usr/include/boost/interprocess/detail
Edit: /usr/include/boost/interprocess/detail/type_traits.hpp (2901B)
//////////////////////////////////////////////////////////////////////////////
// (C) Copyright John Maddock 2000.
// (C) Copyright Ion Gaztanaga 2005-2012.
//
// 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)
//
// See http://www.boost.org/libs/interprocess for documentation.
//
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_INTERPROCESS_DETAIL_TYPE_TRAITS_HPP
#define BOOST_INTERPROCESS_DETAIL_TYPE_TRAITS_HPP
#ifndef BOOST_CONFIG_HPP
# include
#endif
#
#if defined(BOOST_HAS_PRAGMA_ONCE)
# pragma once
#endif
#include
namespace boost {
namespace interprocess {
namespace ipcdetail {
struct nat{};
template
struct remove_reference
{
typedef T type;
};
template
struct remove_reference
{
typedef T type;
};
template
struct is_reference
{
static const bool value = false;
};
template
struct is_reference
{
static const bool value = true;
};
template
struct is_pointer
{
static const bool value = false;
};
template
struct is_pointer
{
static const bool value = true;
};
template
struct add_reference
{
typedef T& type;
};
template
struct add_reference
{
typedef T& type;
};
template<>
struct add_reference
{
typedef nat &type;
};
template<>
struct add_reference
{
typedef const nat &type;
};
template
struct add_const_reference
{ typedef const T &type; };
template
struct add_const_reference
{ typedef T& type; };
template
struct remove_const
{
typedef T type;
};
template
struct remove_const
{
typedef T type;
};
template
struct remove_volatile
{
typedef T type;
};
template
struct remove_volatile
{
typedef T type;
};
template
struct remove_const_volatile
{
typedef typename remove_const::type>::type type;
};
template
struct is_same
{
typedef char yes_type;
struct no_type
{
char padding[8];
};
template
static yes_type is_same_tester(V*, V*);
static no_type is_same_tester(...);
static T *t;
static U *u;
static const bool value = sizeof(yes_type) == sizeof(is_same_tester(t,u));
};
template
struct is_cv_same
{
static const bool value = is_same< typename remove_const_volatile::type
, typename remove_const_volatile::type >::value;
};
} // namespace ipcdetail
} //namespace interprocess {
} //namespace boost {
#include
#endif //#ifndef BOOST_INTERPROCESS_DETAIL_TYPE_TRAITS_HPP