libstdc++
Allocators
Collaboration diagram for Allocators:

Classes

struct  __gnu_cxx::__alloc_traits< _Alloc, typename >
 
class  __gnu_cxx::__mt_alloc< _Tp, _Poolp >
 
class  std::__new_allocator< _Tp >
 
class  __gnu_cxx::__pool_alloc< _Tp >
 
class  __gnu_cxx::_ExtPtr_allocator< _Tp >
 
class  std::allocator< _Tp >
 
class  std::allocator< void >
 
struct  std::allocator_traits< _Alloc >
 
class  __gnu_cxx::bitmap_allocator< _Tp >
 
class  __gnu_cxx::debug_allocator< _Alloc >
 
class  __gnu_cxx::malloc_allocator< _Tp >
 
class  __gnu_cxx::new_allocator< _Tp >
 
class  std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >
 
class  __gnu_cxx::throw_allocator_base< _Tp, _Cond >
 
struct  std::uses_allocator< typename, typename >
 

Macros

#define __cpp_lib_make_obj_using_allocator
 

Typedefs

typedef ptrdiff_t std::allocator< void >::difference_type
 
typedef ptrdiff_t std::allocator< _Tp >::difference_type
 
using std::allocator< void >::is_always_equal = true_type
 
using std::allocator< _Tp >::is_always_equal = true_type
 
using std::allocator< void >::propagate_on_container_move_assignment = true_type
 
using std::allocator< _Tp >::propagate_on_container_move_assignment = true_type
 
typedef size_t std::allocator< void >::size_type
 
typedef size_t std::allocator< _Tp >::size_type
 
typedef void std::allocator< void >::value_type
 
typedef _Tp std::allocator< _Tp >::value_type
 

Functions

constexpr std::allocator< _Tp >::allocator (const allocator &__a) noexcept
 
template<typename _Tp1 >
constexpr std::allocator< _Tp >::allocator (const allocator< _Tp1 > &) noexcept
 
template<typename _Up >
constexpr std::allocator< void >::allocator (const allocator< _Up > &) noexcept
 
constexpr _Tp * std::allocator< _Tp >::allocate (size_t __n)
 
constexpr void std::allocator< _Tp >::deallocate (_Tp *__p, size_t __n)
 
template<typename _Tp , typename _Alloc , typename... _Args>
constexpr _Tp std::make_obj_using_allocator (const _Alloc &__a, _Args &&... __args)
 
allocatorstd::allocator< _Tp >::operator= (const allocator &)=default
 
template<typename _T1 , typename _T2 >
constexpr bool operator== (const allocator< _T1 > &, const allocator< _T2 > &) noexcept
 
template<typename _OutA1 , typename _OutA2 , typename... _InA>
bool operator== (const scoped_allocator_adaptor< _OutA1, _InA... > &__a, const scoped_allocator_adaptor< _OutA2, _InA... > &__b) noexcept
 
template<typename _Tp , typename _Alloc , typename... _Args>
constexpr _Tp * std::uninitialized_construct_using_allocator (_Tp *__p, const _Alloc &__a, _Args &&... __args)
 
template<_Std_pair _Tp, typename _Alloc >
constexpr auto std::uses_allocator_construction_args (const _Alloc &) noexcept
 
template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args (const _Alloc &, _Up &&, _Vp &&) noexcept
 
template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args (const _Alloc &, const pair< _Up, _Vp > &) noexcept
 
template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args (const _Alloc &, pair< _Up, _Vp > &&) noexcept
 
template<typename _Tp , typename _Alloc , typename... _Args>
requires (! _Std_pair<_Tp>)
constexpr auto std::uses_allocator_construction_args (const _Alloc &__a, _Args &&... __args) noexcept
 
template<_Std_pair _Tp, typename _Alloc , typename _Tuple1 , typename _Tuple2 >
constexpr auto std::uses_allocator_construction_args (const _Alloc &__a, piecewise_construct_t, _Tuple1 &&__x, _Tuple2 &&__y) noexcept
 

Friends

constexpr bool std::allocator< _Tp >::operator== (const allocator &, const allocator &) noexcept
 

Detailed Description

Classes encapsulating memory operations.

Macro Definition Documentation

◆ __cpp_lib_make_obj_using_allocator

#define __cpp_lib_make_obj_using_allocator

Definition at line 54 of file uses_allocator_args.h.

Typedef Documentation

◆ difference_type [1/2]

typedef ptrdiff_t std::allocator< void >::difference_type

Definition at line 80 of file allocator.h.

◆ difference_type [2/2]

template<typename _Tp >
typedef ptrdiff_t std::allocator< _Tp >::difference_type

Definition at line 134 of file allocator.h.

◆ is_always_equal [1/2]

using std::allocator< void >::is_always_equal = true_type

Definition at line 97 of file allocator.h.

◆ is_always_equal [2/2]

template<typename _Tp >
using std::allocator< _Tp >::is_always_equal = true_type

Definition at line 153 of file allocator.h.

◆ propagate_on_container_move_assignment [1/2]

using std::allocator< void >::propagate_on_container_move_assignment = true_type

Definition at line 95 of file allocator.h.

◆ propagate_on_container_move_assignment [2/2]

template<typename _Tp >
using std::allocator< _Tp >::propagate_on_container_move_assignment = true_type

Definition at line 151 of file allocator.h.

◆ size_type [1/2]

typedef size_t std::allocator< void >::size_type

Definition at line 79 of file allocator.h.

◆ size_type [2/2]

template<typename _Tp >
typedef size_t std::allocator< _Tp >::size_type

Definition at line 133 of file allocator.h.

◆ value_type [1/2]

typedef void std::allocator< void >::value_type

Definition at line 78 of file allocator.h.

◆ value_type [2/2]

template<typename _Tp >
typedef _Tp std::allocator< _Tp >::value_type

Definition at line 132 of file allocator.h.

Function Documentation

◆ allocator() [1/4]

template<typename _Tp >
constexpr std::allocator< _Tp >::allocator ( )
inlineconstexprnoexcept

Definition at line 161 of file allocator.h.

◆ allocator() [2/4]

template<typename _Tp >
constexpr std::allocator< _Tp >::allocator ( const allocator< _Tp > &  __a)
inlineconstexprnoexcept

Definition at line 164 of file allocator.h.

◆ allocator() [3/4]

template<typename _Tp >
template<typename _Tp1 >
constexpr std::allocator< _Tp >::allocator ( const allocator< _Tp1 > &  )
inlineconstexprnoexcept

Definition at line 174 of file allocator.h.

◆ allocator() [4/4]

template<typename _Up >
constexpr std::allocator< void >::allocator ( const allocator< _Up > &  )
inlineconstexprnoexcept

Definition at line 109 of file allocator.h.

◆ ~allocator()

template<typename _Tp >
constexpr std::allocator< _Tp >::~allocator ( )
inlineconstexprnoexcept

Definition at line 179 of file allocator.h.

◆ allocate()

template<typename _Tp >
constexpr _Tp * std::allocator< _Tp >::allocate ( size_t  __n)
inlineconstexpr

Definition at line 184 of file allocator.h.

◆ deallocate()

template<typename _Tp >
constexpr void std::allocator< _Tp >::deallocate ( _Tp *  __p,
size_t  __n 
)
inlineconstexpr

Definition at line 198 of file allocator.h.

◆ make_obj_using_allocator()

template<typename _Tp , typename _Alloc , typename... _Args>
constexpr _Tp std::make_obj_using_allocator ( const _Alloc &  __a,
_Args &&...  __args 
)
constexpr

Definition at line 189 of file uses_allocator_args.h.

◆ operator==() [1/2]

template<typename _T1 , typename _T2 >
constexpr bool operator== ( const allocator< _T1 > &  ,
const allocator< _T2 > &   
)
related

Equality comparison for std::allocator objects

Returns
true, for all std::allocator objects.

Definition at line 229 of file allocator.h.

◆ operator==() [2/2]

template<typename _OutA1 , typename _OutA2 , typename... _InA>
bool operator== ( const scoped_allocator_adaptor< _OutA1, _InA... > &  __a,
const scoped_allocator_adaptor< _OutA2, _InA... > &  __b 
)
related

Definition at line 505 of file scoped_allocator.

◆ uninitialized_construct_using_allocator()

template<typename _Tp , typename _Alloc , typename... _Args>
constexpr _Tp * std::uninitialized_construct_using_allocator ( _Tp *  __p,
const _Alloc &  __a,
_Args &&...  __args 
)
constexpr

Definition at line 198 of file uses_allocator_args.h.

◆ uses_allocator_construction_args() [1/6]

template<_Std_pair _Tp, typename _Alloc >
constexpr auto std::uses_allocator_construction_args ( const _Alloc &  __a)
constexprnoexcept

Definition at line 131 of file uses_allocator_args.h.

◆ uses_allocator_construction_args() [2/6]

template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args ( const _Alloc &  __a,
_Up &&  __u,
_Vp &&  __v 
)
constexprnoexcept

Definition at line 143 of file uses_allocator_args.h.

◆ uses_allocator_construction_args() [3/6]

template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args ( const _Alloc &  __a,
const pair< _Up, _Vp > &  __pr 
)
constexprnoexcept

Definition at line 158 of file uses_allocator_args.h.

◆ uses_allocator_construction_args() [4/6]

template<_Std_pair _Tp, typename _Alloc , typename _Up , typename _Vp >
constexpr auto std::uses_allocator_construction_args ( const _Alloc &  __a,
pair< _Up, _Vp > &&  __pr 
)
constexprnoexcept

Definition at line 171 of file uses_allocator_args.h.

◆ uses_allocator_construction_args() [5/6]

template<typename _Tp , typename _Alloc , typename... _Args>
requires (! _Std_pair<_Tp>)
constexpr auto std::uses_allocator_construction_args ( const _Alloc &  __a,
_Args &&...  __args 
)
constexprnoexcept

Definition at line 58 of file uses_allocator_args.h.

◆ uses_allocator_construction_args() [6/6]

template<_Std_pair _Tp, typename _Alloc , typename _Tuple1 , typename _Tuple2 >
constexpr auto std::uses_allocator_construction_args ( const _Alloc &  __a,
piecewise_construct_t  ,
_Tuple1 &&  __x,
_Tuple2 &&  __y 
)
constexprnoexcept

Definition at line 112 of file uses_allocator_args.h.

Friends

◆ operator==

template<typename _Tp >
constexpr bool operator== ( const allocator< _Tp > &  ,
const allocator< _Tp > &   
)
friend

Definition at line 210 of file allocator.h.