std::allocator_traits< allocator< _Tp > > Struct Template Reference

## Public Types

using | allocator_type = allocator< _Tp >
using | const_pointer = const _Tp *
using | const_void_pointer = const void *
using | difference_type = std::ptrdiff_t
using | is_always_equal = true_type
using | pointer = _Tp *
using | propagate_on_container_copy_assignment = false_type
using | propagate_on_container_move_assignment = true_type
using | propagate_on_container_swap = false_type
template<typename _Up >
using | rebind_alloc = allocator< _Up >
template<typename _Up >
using | rebind_traits = allocator_traits< allocator< _Up > >
using | size_type = std::size_t
using | value_type = _Tp
using | void_pointer = void *

## 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 __hint)
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 void | destroy (allocator_type &__a, _Up *__p)
static size_type | max_size (const allocator_type &__a) noexcept
static allocator_type | select_on_container_copy_construction (const allocator_type &__rhs)

## Detailed Description

### template<typename _Tp>
struct std::allocator_traits< allocator< _Tp > >

Partial specialization for std::allocator.

Definition at line 384 of file bits/alloc_traits.h.

## Member Typedef Documentation

## allocator_type

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::allocator_type = allocator<_Tp>

The allocator type.

Definition at line 387 of file bits/alloc_traits.h.

## const_pointer

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::const_pointer = const _Tp*

The allocator's const pointer type.

Definition at line 395 of file bits/alloc_traits.h.

## const_void_pointer

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::const_void_pointer = const void*

The allocator's const void pointer type.

Definition at line 401 of file bits/alloc_traits.h.

## difference_type

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::difference_type = std::ptrdiff_t

The allocator's difference type.

Definition at line 404 of file bits/alloc_traits.h.

## is_always_equal

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::is_always_equal = true_type

Whether all instances of the allocator type compare equal.

Definition at line 419 of file bits/alloc_traits.h.

## pointer

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::pointer = _Tp*

The allocator's pointer type.

Definition at line 392 of file bits/alloc_traits.h.

## propagate_on_container_copy_assignment

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::propagate_on_container_copy_assignment = false_type

How the allocator is propagated on copy assignment.

Definition at line 410 of file bits/alloc_traits.h.

## propagate_on_container_move_assignment

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::propagate_on_container_move_assignment = true_type

How the allocator is propagated on move assignment.

Definition at line 413 of file bits/alloc_traits.h.

## propagate_on_container_swap

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::propagate_on_container_swap = false_type

How the allocator is propagated on swap.

Definition at line 416 of file bits/alloc_traits.h.

## size_type

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::size_type = std::size_t

The allocator's size type.

Definition at line 407 of file bits/alloc_traits.h.

## value_type

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::value_type = _Tp

The allocated type.

Definition at line 389 of file bits/alloc_traits.h.

## void_pointer

template<typename _Tp >

using std::allocator_traits< allocator< _Tp > >::void_pointer = void*

The allocator's void pointer type.

Definition at line 398 of file bits/alloc_traits.h.

## Member Function Documentation

## allocate() [1/2]

template<typename _Tp >

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

inline static

Allocate memory.

Parameters

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

Calls `a.allocate(n)`

Definition at line 435 of file bits/alloc_traits.h.

## allocate() [2/2]

template<typename _Tp >

static pointer std::allocator_traits< allocator< _Tp > >::allocate | ( | allocator_type & | __a,
|  | size_type | __n,
|  | const_void_pointer | __hint
| ) |  |

inline static

Allocate memory.

Parameters

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

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

Returns `a.allocate(n, hint)`

Definition at line 449 of file bits/alloc_traits.h.

## construct()

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

static void std::allocator_traits< 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 Tp
  __args | Constructor arguments.

Calls `__a.construct(__p, std::forward<Args>(__args)...)`

Definition at line 474 of file bits/alloc_traits.h.

## deallocate()

template<typename _Tp >

static void std::allocator_traits< 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 461 of file bits/alloc_traits.h.

## destroy()

template<typename _Tp >
template<typename _Up >

static void std::allocator_traits< allocator< _Tp > >::destroy | ( | allocator_type & | __a,
|  | _Up * | __p
| ) |  |

inline static

Destroy an object of type _Up.

Parameters

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

Calls `__a.destroy(__p)`.

Definition at line 486 of file bits/alloc_traits.h.

## max_size()

template<typename _Tp >

static size_type std::allocator_traits< allocator< _Tp > >::max_size | ( | const allocator_type & | __a | ) |

inline static noexcept

The maximum supported allocation size.

Parameters

  __a | An allocator.

Returns
  `__a.max_size()`

Definition at line 495 of file bits/alloc_traits.h.

## select_on_container_copy_construction()

template<typename _Tp >

static allocator_type std::allocator_traits< allocator< _Tp > >::select_on_container_copy_construction | ( | const allocator_type & | __rhs | ) |

inline static

Obtain an allocator to use when copying a container.

Parameters

  __rhs | An allocator.

Returns
  `__rhs`

Definition at line 504 of file bits/alloc_traits.h.

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

- bits/alloc_traits.h