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

`#include <scoped_allocator>`

Inherits _OuterAlloc.

## 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)
| scoped_allocator_adaptor (const scoped_allocator_adaptor &__other)
template<typename _Outer2 , typename = _Constructible<const _Outer2&>>
| scoped_allocator_adaptor (const scoped_allocator_adaptor< _Outer2, _InnerAllocs... > &__other)
| scoped_allocator_adaptor (scoped_allocator_adaptor &&__other)
template<typename _Outer2 , typename = _Constructible<_Outer2>>
| scoped_allocator_adaptor (scoped_allocator_adaptor< _Outer2, _InnerAllocs... > &&__other)
_GLIBCXX_NODISCARD pointer | allocate (size_type __n)
_GLIBCXX_NODISCARD pointer | allocate (size_type __n, const_void_pointer __hint)
template<typename _Tp , typename... _Args>
__not_pair< _Tp >::type | construct (_Tp *__p, _Args &&... __args)
template<typename _T1 , typename _T2 >
void | construct (pair< _T1, _T2 > *__p)
template<typename _T1 , typename _T2 , typename _Up , typename _Vp >
void | construct (pair< _T1, _T2 > *__p, _Up &&__u, _Vp &&__v)
template<typename _T1 , typename _T2 , typename _Up , typename _Vp >
void | construct (pair< _T1, _T2 > *__p, const pair< _Up, _Vp > &__x)
template<typename _T1 , typename _T2 , typename _Up , typename _Vp >
void | construct (pair< _T1, _T2 > *__p, pair< _Up, _Vp > &&__x)
template<typename _T1 , typename _T2 , typename... _Args1, typename... _Args2>
void | construct (pair< _T1, _T2 > *__p, piecewise_construct_t, tuple< _Args1... > __x, tuple< _Args2... > __y)
void | deallocate (pointer __p, size_type __n)
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... >
class | __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

## Detailed Description

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

Primary class template.

Definition at line 169 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 263 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 265 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 261 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 257 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 288 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 256 of file scoped_allocator.

## pointer

template<typename _OuterAlloc , typename... _InnerAllocs>

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

Definition at line 262 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 271 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 277 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 283 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 260 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 259 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 264 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 298 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
| ) |  |

inline

Definition at line 301 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 | ) |

inline

Definition at line 307 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 | ) |

inline

Definition at line 312 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 | ) |

inline

Definition at line 318 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 | ) |

inline

Definition at line 325 of file scoped_allocator.

## Member Function Documentation

## allocate() [1/2]

template<typename _OuterAlloc , typename... _InnerAllocs>

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

inline

Definition at line 349 of file scoped_allocator.

## allocate() [2/2]

template<typename _OuterAlloc , typename... _InnerAllocs>

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

inline

Definition at line 352 of file scoped_allocator.

## construct() [1/6]

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

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

inline

Definition at line 364 of file scoped_allocator.

## construct() [2/6]

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

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::construct | ( | pair< _T1, _T2 > * | __p | ) |

inline

Definition at line 395 of file scoped_allocator.

## construct() [3/6]

template<typename _OuterAlloc , typename... _InnerAllocs>
template<typename _T1 , typename _T2 , typename _Up , typename _Vp >

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::construct | ( | pair< _T1, _T2 > * | __p,
|  | _Up && | __u,
|  | _Vp && | __v
| ) |  |

inline

Definition at line 400 of file scoped_allocator.

## construct() [4/6]

template<typename _OuterAlloc , typename... _InnerAllocs>
template<typename _T1 , typename _T2 , typename _Up , typename _Vp >

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::construct | ( | pair< _T1, _T2 > * | __p,
|  | const pair< _Up, _Vp > & | __x
| ) |  |

inline

Definition at line 409 of file scoped_allocator.

## construct() [5/6]

template<typename _OuterAlloc , typename... _InnerAllocs>
template<typename _T1 , typename _T2 , typename _Up , typename _Vp >

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::construct | ( | pair< _T1, _T2 > * | __p,
|  | pair< _Up, _Vp > && | __x
| ) |  |

inline

Definition at line 418 of file scoped_allocator.

## construct() [6/6]

template<typename _OuterAlloc , typename... _InnerAllocs>
template<typename _T1 , typename _T2 , typename... _Args1, typename... _Args2>

void std::scoped_allocator_adaptor< _OuterAlloc, _InnerAllocs >::construct | ( | pair< _T1, _T2 > * | __p,
|  | piecewise_construct_t | ,
|  | tuple< _Args1... > | __x,
|  | tuple< _Args2... > | __y
| ) |  |

inline

Definition at line 375 of file scoped_allocator.

## deallocate()

template<typename _OuterAlloc , typename... _InnerAllocs>

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

inline

Definition at line 355 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 441 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

inline noexcept

Definition at line 340 of file scoped_allocator.

## inner_allocator() [2/2]

template<typename _OuterAlloc , typename... _InnerAllocs>

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

inline noexcept

Definition at line 337 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 358 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

inline noexcept

Definition at line 346 of file scoped_allocator.

## outer_allocator() [2/2]

template<typename _OuterAlloc , typename... _InnerAllocs>

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

inline noexcept

Definition at line 343 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 448 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 178 of file scoped_allocator.

## __inner_type_impl

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

friend class __inner_type_impl

friend

Definition at line 181 of file scoped_allocator.

## operator==

template<typename _OuterAlloc , typename... _InnerAllocs>
template<typename _OutA1 , typename _OutA2 , typename... _InA>

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

friend

Definition at line 489 of file scoped_allocator.

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

- scoped_allocator