/usr/include/boost/container/detail
Edit: /usr/include/boost/container/detail/container_rebind.hpp (6610B)
//////////////////////////////////////////////////////////////////////////////
//
// (C) Copyright Ion Gaztanaga 2017-2017. 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/container for documentation.
//
//////////////////////////////////////////////////////////////////////////////
#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_REBIND_HPP
#define BOOST_CONTAINER_DETAIL_CONTAINER_REBIND_HPP
#ifndef BOOST_CONFIG_HPP
# include
#endif
#if defined(BOOST_HAS_PRAGMA_ONCE)
# pragma once
#endif
#include
#include
namespace boost {
namespace container {
namespace dtl {
template
struct container_rebind;
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
template class Cont, typename V, typename A, class... An, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, An...> type;
};
//Needed for non-conforming compilers like GCC 4.3
template class Cont, typename V, typename A, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type> type;
};
template class Cont, typename V, class U>
struct container_rebind, U>
{
typedef Cont type;
};
#else //C++03 compilers
template class Cont //0arg
, typename V
, class U>
struct container_rebind, U>
{
typedef Cont type;
};
template class Cont //0arg
, typename V, typename A
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type> type;
};
template class Cont //1arg
, typename V, typename A, class P0
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0> type;
};
template class Cont //2arg
, typename V, typename A, class P0, class P1
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1> type;
};
template class Cont //3arg
, typename V, typename A, class P0, class P1, class P2
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1, P2> type;
};
template class Cont //4arg
, typename V, typename A, class P0, class P1, class P2, class P3
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1, P2, P3> type;
};
template class Cont //5arg
, typename V, typename A, class P0, class P1, class P2, class P3, class P4
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1, P2, P3, P4> type;
};
template class Cont //6arg
, typename V, typename A, class P0, class P1, class P2, class P3, class P4, class P5
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1, P2, P3, P4, P5> type;
};
template class Cont //7arg
, typename V, typename A, class P0, class P1, class P2, class P3, class P4, class P5, class P6
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1, P2, P3, P4, P5, P6> type;
};
template class Cont //8arg
, typename V, typename A, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1, P2, P3, P4, P5, P6, P7> type;
};
template class Cont //9arg
, typename V, typename A, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8
, class U>
struct container_rebind, U>
{
typedef Cont::type>::template portable_rebind_alloc::type, P0, P1, P2, P3, P4, P5, P6, P7, P8> type;
};
#endif //!defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
//for small_vector,static_vector
template
struct container_rebind, U>
{
typedef small_vector::type>::template portable_rebind_alloc::type> type;
};
template
struct container_rebind, U>
{
typedef static_vector type;
};
} //namespace dtl {
} //namespace container {
} //namespace boost {
#endif //#ifndef BOOST_CONTAINER_DETAIL_CONTAINER_REBIND_HPP