19 General utilities library [utilities]

19.10 Memory [memory]

19.10.9 Allocator traits [allocator.traits]

19.10.9.1 Member types [allocator.traits.types]

using pointer = see below;
Type: Alloc::pointer if the qualified-id Alloc::pointer is valid and denotes a type ([temp.deduct]); otherwise, value_­type*.
using const_pointer = see below;
Type: Alloc::const_­pointer if the qualified-id Alloc::const_­pointer is valid and denotes a type ([temp.deduct]); otherwise, pointer_­traits<pointer>::rebind<const value_­type>.
using void_pointer = see below;
Type: Alloc::void_­pointer if the qualified-id Alloc::void_­pointer is valid and denotes a type ([temp.deduct]); otherwise, pointer_­traits<pointer>::rebind<void>.
using const_void_pointer = see below;
Type: Alloc::const_­void_­pointer if the qualified-id Alloc::const_­void_­pointer is valid and denotes a type ([temp.deduct]); otherwise, pointer_­traits<pointer>::​rebind<const void>.
using difference_type = see below;
Type: Alloc::difference_­type if the qualified-id Alloc::difference_­type is valid and denotes a type ([temp.deduct]); otherwise, pointer_­traits<pointer>::difference_­type.
using size_type = see below;
Type: Alloc::size_­type if the qualified-id Alloc::size_­type is valid and denotes a type ([temp.deduct]); otherwise, make_­unsigned_­t<difference_­type>.
using propagate_on_container_copy_assignment = see below;
Type: Alloc::propagate_­on_­container_­copy_­assignment if the qualified-id Alloc::propagate_­on_­container_­copy_­assignment is valid and denotes a type ([temp.deduct]); otherwise false_­type.
using propagate_on_container_move_assignment = see below;
Type: Alloc::propagate_­on_­container_­move_­assignment if the qualified-id Alloc::propagate_­on_­container_­move_­assignment is valid and denotes a type ([temp.deduct]); otherwise false_­type.
using propagate_on_container_swap = see below;
Type: Alloc::propagate_­on_­container_­swap if the qualified-id Alloc::propagate_­on_­container_­swap is valid and denotes a type ([temp.deduct]); otherwise false_­type.
using is_always_equal = see below;
Type: Alloc::is_­always_­equal if the qualified-id Alloc::is_­always_­equal is valid and denotes a type ([temp.deduct]); otherwise is_­empty<Alloc>::type.
template<class T> using rebind_alloc = see below;
Alias template: Alloc::rebind<T>::other if the qualified-id Alloc::rebind<T>::other is valid and denotes a type ([temp.deduct]); otherwise, Alloc<T, Args> if Alloc is a class template instantiation of the form Alloc<U, Args>, where Args is zero or more type arguments; otherwise, the instantiation of rebind_­alloc is ill-formed.