libstdc++: std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs > Class Template Reference

libstdc++

std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs > Class Template Reference
Utilities » Memory » Allocators

`#include <scoped_allocator>`

## Public Types
typedef __traits::const_pointer | const_pointer
typedef __traits::const_void_pointer | const_void_pointer
typedef __traits::difference_type | difference_type
typedef __inner_type::__type | inner_allocator_type
typedef __and_< typename__traits::is_always_equal, typenameallocator_traits< _InnerAllocs >::is_always_equal... >::type | is_always_equal
typedef _OuterAlloc | outer_allocator_type
typedef __traits::pointer | pointer
typedef __or_< typename__traits::propagate_on_container_copy_assignment, typenameallocator_traits< _InnerAllocs >::propagate_on_container_copy_assignment... >::type | propagate_on_container_copy_assignment
typedef __or_< typename__traits::propagate_on_container_move_assignment, typenameallocator_traits< _InnerAllocs >::propagate_on_container_move_assignment... >::type | propagate_on_container_move_assignment
typedef __or_< typename__traits::propagate_on_container_swap, typenameallocator_traits< _InnerAllocs >::propagate_on_container_swap... >::type | propagate_on_container_swap
typedef __traits::size_type | size_type
typedef __traits::value_type | value_type
typedef __traits::void_pointer | void_pointer

## Public Member Functions
template<typename _Outer2, typename = _Constructible<_Outer2>>
| scoped_allocator_adaptor (_Outer2 &&__outer, const _InnerAllocs &... __inner) noexcept
| scoped_allocator_adaptor (const scoped_allocator_adaptor &__other) noexcept
template<typename _Outer2, typename = _Constructible<const _Outer2&>>
| scoped_allocator_adaptor (const scoped_allocator_adaptor< _Outer2, _InnerAllocs... > &__other) noexcept
| scoped_allocator_adaptor (scoped_allocator_adaptor &&__other) noexcept
template<typename _Outer2, typename = _Constructible<_Outer2>>
| scoped_allocator_adaptor (scoped_allocator_adaptor< _Outer2, _InnerAllocs... > &&__other) noexcept
pointer | allocate (size_type __n)
pointer | allocate (size_type __n, const_void_pointer __hint)
template<typename _Tp, typename... _Args>
void | construct (_Tp *__p, _Args &&... __args)
void | deallocate (pointer __p, size_type __n) noexcept
template<typename _Tp>
void | destroy (_Tp *__p)
const inner_allocator_type & | inner_allocator () const noexcept
inner_allocator_type & | inner_allocator () noexcept
size_type | max_size () const
scoped_allocator_adaptor & | operator= (const scoped_allocator_adaptor &)=default
scoped_allocator_adaptor & | operator= (scoped_allocator_adaptor &&)=default
const outer_allocator_type & | outer_allocator () const noexcept
outer_allocator_type & | outer_allocator () noexcept
scoped_allocator_adaptor | select_on_container_copy_construction () const

## Friends
template<typename...>
struct | __inner_type_impl
template<typename _OutA1, typename _OutA2, typename... _InA>
bool | operator== (const scoped_allocator_adaptor< _OutA1, _InA... > &__a, const scoped_allocator_adaptor< _OutA2, _InA... > &__b) noexcept

## Related Symbols
(Note that these are not member symbols.)
template<typename _OutA1, typename _OutA2, typename... _InA>
bool | operator== (const scoped_allocator_adaptor< _OutA1, _InA... > &__a, const scoped_allocator_adaptor< _OutA2, _InA... > &__b) noexcept

## Detailed Description

template<typename _OuterAlloc, typename... _InnerAllocs>
class std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >

An adaptor to recursively pass an allocator to the objects it constructs.

Definition at line 182 of file scoped_allocator.

## Member Typedef Documentation

## ◆ const_pointer

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __traits::const_pointer std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::const_pointer

Definition at line 275 of file scoped_allocator.

## ◆ const_void_pointer

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __traits::const_void_pointer std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::const_void_pointer

Definition at line 277 of file scoped_allocator.

## ◆ difference_type

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __traits::difference_type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::difference_type

Definition at line 273 of file scoped_allocator.

## ◆ inner_allocator_type

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __inner_type::__type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::inner_allocator_type

Definition at line 269 of file scoped_allocator.

## ◆ is_always_equal

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __and_<typename__traits::is_always_equal,typenameallocator_traits<_InnerAllocs>::is_always_equal...>::type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::is_always_equal

Definition at line 300 of file scoped_allocator.

## ◆ outer_allocator_type

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef _OuterAlloc std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::outer_allocator_type

Definition at line 268 of file scoped_allocator.

## ◆ pointer

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __traits::pointer std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::pointer

Definition at line 274 of file scoped_allocator.

## ◆ propagate_on_container_copy_assignment

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __or_<typename__traits::propagate_on_container_copy_assignment,typenameallocator_traits<_InnerAllocs>::propagate_on_container_copy_assignment...>::type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::propagate_on_container_copy_assignment

Definition at line 283 of file scoped_allocator.

## ◆ propagate_on_container_move_assignment

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __or_<typename__traits::propagate_on_container_move_assignment,typenameallocator_traits<_InnerAllocs>::propagate_on_container_move_assignment...>::type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::propagate_on_container_move_assignment

Definition at line 289 of file scoped_allocator.

## ◆ propagate_on_container_swap

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __or_<typename__traits::propagate_on_container_swap,typenameallocator_traits<_InnerAllocs>::propagate_on_container_swap...>::type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::propagate_on_container_swap

Definition at line 295 of file scoped_allocator.

## ◆ size_type

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __traits::size_type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::size_type

Definition at line 272 of file scoped_allocator.

## ◆ value_type

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __traits::value_type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::value_type

Definition at line 271 of file scoped_allocator.

## ◆ void_pointer

template<typename _OuterAlloc, typename... _InnerAllocs>

typedef __traits::void_pointer std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::void_pointer

Definition at line 276 of file scoped_allocator.

## Constructor & Destructor Documentation

## ◆ scoped_allocator_adaptor() [1/6]

template<typename _OuterAlloc, typename... _InnerAllocs>

std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::scoped_allocator_adaptor | ( |  | ) |
| inline

Definition at line 310 of file scoped_allocator.

## ◆ scoped_allocator_adaptor() [2/6]

template<typename _OuterAlloc, typename... _InnerAllocs>
template<typename _Outer2, typename = _Constructible<_Outer2>>

std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::scoped_allocator_adaptor | ( | _Outer2 && | __outer,
|  | const _InnerAllocs &... | __inner )
| inlinenoexcept

Definition at line 313 of file scoped_allocator.

## ◆ scoped_allocator_adaptor() [3/6]

template<typename _OuterAlloc, typename... _InnerAllocs>

std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::scoped_allocator_adaptor | ( | const scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs > & | __other | ) |
| inlinenoexcept

Definition at line 319 of file scoped_allocator.

## ◆ scoped_allocator_adaptor() [4/6]

template<typename _OuterAlloc, typename... _InnerAllocs>

std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::scoped_allocator_adaptor | ( | scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs > && | __other | ) |
| inlinenoexcept

Definition at line 324 of file scoped_allocator.

## ◆ scoped_allocator_adaptor() [5/6]

template<typename _OuterAlloc, typename... _InnerAllocs>
template<typename _Outer2, typename = _Constructible<const _Outer2&>>

std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::scoped_allocator_adaptor | ( | const scoped_allocator_adaptor< _Outer2, _InnerAllocs... > & | __other | ) |
| inlinenoexcept

Definition at line 330 of file scoped_allocator.

## ◆ scoped_allocator_adaptor() [6/6]

template<typename _OuterAlloc, typename... _InnerAllocs>
template<typename _Outer2, typename = _Constructible<_Outer2>>

std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::scoped_allocator_adaptor | ( | scoped_allocator_adaptor< _Outer2, _InnerAllocs... > && | __other | ) |
| inlinenoexcept

Definition at line 338 of file scoped_allocator.

## Member Function Documentation

## ◆ allocate() [1/2]

template<typename _OuterAlloc, typename... _InnerAllocs>

pointer std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::allocate | ( | size_type | __n | ) |
| inlinenodiscard

Definition at line 367 of file scoped_allocator.

## ◆ allocate() [2/2]

template<typename _OuterAlloc, typename... _InnerAllocs>

pointer std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::allocate | ( | size_type | __n,
|  | const_void_pointer | __hint )
| inlinenodiscard

Definition at line 371 of file scoped_allocator.

## ◆ construct()

template<typename _OuterAlloc, typename... _InnerAllocs>
template<typename _Tp, typename... _Args>

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::construct | ( | _Tp * | __p,
|  | _Args &&... | __args )
| inline

Definition at line 447 of file scoped_allocator.

## ◆ deallocate()

template<typename _OuterAlloc, typename... _InnerAllocs>

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::deallocate | ( | pointer | __p,
|  | size_type | __n )
| inlinenoexcept

Definition at line 374 of file scoped_allocator.

## ◆ destroy()

template<typename _OuterAlloc, typename... _InnerAllocs>
template<typename _Tp>

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::destroy | ( | _Tp * | __p | ) |
| inline

Definition at line 460 of file scoped_allocator.

## ◆ inner_allocator() [1/2]

template<typename _OuterAlloc, typename... _InnerAllocs>

const inner_allocator_type & std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::inner_allocator | ( |  | ) | const
| inlinenoexcept

Definition at line 355 of file scoped_allocator.

## ◆ inner_allocator() [2/2]

template<typename _OuterAlloc, typename... _InnerAllocs>

inner_allocator_type & std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::inner_allocator | ( |  | ) |
| inlinenoexcept

Definition at line 351 of file scoped_allocator.

## ◆ max_size()

template<typename _OuterAlloc, typename... _InnerAllocs>

size_type std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::max_size | ( |  | ) | const
| inline

Definition at line 377 of file scoped_allocator.

## ◆ outer_allocator() [1/2]

template<typename _OuterAlloc, typename... _InnerAllocs>

const outer_allocator_type & std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::outer_allocator | ( |  | ) | const
| inlinenoexcept

Definition at line 363 of file scoped_allocator.

## ◆ outer_allocator() [2/2]

template<typename _OuterAlloc, typename... _InnerAllocs>

outer_allocator_type & std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::outer_allocator | ( |  | ) |
| inlinenoexcept

Definition at line 359 of file scoped_allocator.

## ◆ select_on_container_copy_construction()

template<typename _OuterAlloc, typename... _InnerAllocs>

scoped_allocator_adaptor std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::select_on_container_copy_construction | ( |  | ) | const
| inline

Definition at line 467 of file scoped_allocator.

## Friends And Related Symbol Documentation

## ◆ scoped_allocator_adaptor

template<typename _OuterAlloc, typename... _InnerAllocs>
template<typename _Outer, typename... _Inner>

friend class scoped_allocator_adaptor
| friend

Definition at line 191 of file scoped_allocator.

## ◆ __inner_type_impl

template<typename _OuterAlloc, typename... _InnerAllocs>
template<typename...>

friend struct __inner_type_impl
| friend

Definition at line 194 of file scoped_allocator.

The documentation for this class was generated from the following file:

- scoped_allocator