std::allocator_traits< pmr::polymorphic_allocator< _Tp > > Struct Template Reference

`#include <memory_resource>`

## Public Types

using | allocator_type
using | const_pointer
using | const_void_pointer
using | difference_type
using | is_always_equal
using | pointer
template<typename _Up>
using | rebind_alloc
template<typename _Up>
using | rebind_traits
using | size_type
using | value_type
using | void_pointer

## Static Public Member Functions

static pointer | allocate (allocator_type &__a, size_type __n)
static pointer | allocate (allocator_type &__a, size_type __n, const_void_pointer)
template<typename _Up, typename... _Args>
static void | construct (allocator_type &__a, _Up *__p, _Args &&... __args)
static void | deallocate (allocator_type &__a, pointer __p, size_type __n)
template<typename _Up>
static constexpr void | destroy (allocator_type &, _Up *__p) noexcept(is_nothrow_destructible< _Up >::value)
static constexpr size_type | max_size (const allocator_type &) noexcept
using | propagate_on_container_copy_assignment
using | propagate_on_container_move_assignment
using | propagate_on_container_swap
static allocator_type | select_on_container_copy_construction (const allocator_type &) noexcept

## Detailed Description

template<typename _Tp>
struct std::allocator_traits< pmr::polymorphic_allocator< _Tp > >

Partial specialization for std::pmr::polymorphic_allocator.

Definition at line 425 of file memory_resource.

## Member Typedef Documentation

## allocator_type

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::allocator_type

The allocator type.

Definition at line 428 of file memory_resource.

## const_pointer

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::const_pointer

The allocator's const pointer type.

Definition at line 437 of file memory_resource.

## const_void_pointer

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::const_void_pointer

The allocator's const void pointer type.

Definition at line 443 of file memory_resource.

## difference_type

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::difference_type

The allocator's difference type.

Definition at line 446 of file memory_resource.

## is_always_equal

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::is_always_equal

Whether all instances of the allocator type compare equal.

Definition at line 465 of file memory_resource.

## pointer

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::pointer

The allocator's pointer type.

Definition at line 434 of file memory_resource.

## propagate_on_container_copy_assignment

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::propagate_on_container_copy_assignment

A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.

Definition at line 455 of file memory_resource.

## propagate_on_container_move_assignment

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::propagate_on_container_move_assignment

A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.

Definition at line 456 of file memory_resource.

## propagate_on_container_swap

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::propagate_on_container_swap

A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.

Definition at line 457 of file memory_resource.

## rebind_alloc

template<typename _Tp>
template<typename _Up>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::rebind_alloc

Definition at line 468 of file memory_resource.

## rebind_traits

template<typename _Tp>
template<typename _Up>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::rebind_traits

Definition at line 471 of file memory_resource.

## size_type

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::size_type

The allocator's size type.

Definition at line 449 of file memory_resource.

## value_type

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::value_type

The allocated type.

Definition at line 431 of file memory_resource.

## void_pointer

template<typename _Tp>

using std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::void_pointer

The allocator's void pointer type.

Definition at line 440 of file memory_resource.

## Member Function Documentation

## allocate() [1/2]

template<typename _Tp>

pointer std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::allocate | ( | allocator_type & | __a,
|  | size_type | __n )

inline static nodiscard

Allocate memory.

Parameters

  __a | An allocator.
  __n | The number of objects to allocate space for.

Calls a.allocate(n).

Definition at line 481 of file memory_resource.

## allocate() [2/2]

template<typename _Tp>

pointer std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::allocate | ( | allocator_type & | __a,
|  | size_type | __n,
|  | const_void_pointer | )

inline static nodiscard

Allocate memory.

Parameters

  __a | An allocator.
  __n | The number of objects to allocate space for.

Returns
  Memory of suitable size and alignment for n objects of type value_type.

The third parameter is ignored..

Returns a.allocate(n).

Definition at line 496 of file memory_resource.

## construct()

template<typename _Tp>
template<typename _Up, typename... _Args>

void std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::construct | ( | allocator_type & | __a,
|  | _Up * | __p,
|  | _Args &&... | __args )

inline static

Construct an object of type _Up.

Parameters

  __a | An allocator.
  __p | Pointer to memory of suitable size and alignment for an object of type _Up.
  __args | Constructor arguments.

Calls __a.construct(__p, std::forward<_Args>(__args)...) in C++11, C++14 and C++17. Changed in C++20 to call std::construct_at(__p, std::forward<_Args>(__args)...) instead.

Definition at line 524 of file memory_resource.

References std::forward().

## deallocate()

template<typename _Tp>

void std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::deallocate | ( | allocator_type & | __a,
|  | pointer | __p,
|  | size_type | __n )

inline static

Deallocate memory.

Parameters

  __a | An allocator.
  __p | Pointer to the memory to deallocate.
  __n | The number of objects space was allocated for.

Calls a.deallocate(p, n).

Definition at line 508 of file memory_resource.

## destroy()

template<typename _Tp>
template<typename _Up>

constexpr void std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::destroy | ( | allocator_type & | ,
|  | _Up * | __p )

inline static constexpr noexcept

Destroy an object of type _Up.

Parameters

  __a | An allocator.
  __p | Pointer to the object to destroy

Calls p->_Up().

Definition at line 536 of file memory_resource.

## max_size()

template<typename _Tp>

constexpr size_type std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::max_size | ( | const allocator_type & |  | ) |

inline static constexpr noexcept

The maximum supported allocation size.

Returns
  numeric_limits<size_t>::max() / sizeof(value_type)

Definition at line 545 of file memory_resource.

## select_on_container_copy_construction()

template<typename _Tp>

allocator_type std::allocator_traits< pmr::polymorphic_allocator< _Tp > >::select_on_container_copy_construction | ( | const allocator_type & |  | ) |

inline static noexcept

A polymorphic_allocator does not propagate when a container is copied, moved, or swapped.

Definition at line 460 of file memory_resource.

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

- memory_resource