template< class Alloc >
struct allocator_traits;
The allocator_traits
class template provides the standardized way to access various properties of Allocators. The standard containers and other standard library components access allocators through this template.
It is possible to use any class type as an allocator, as long as the user-provided specialization of std::allocator_traits
implements all required functionality.
A program that declares an explicit or partial specialization of std::allocator_traits
is ill-formed, no diagnostic required.
The default, non-specialized, std::allocator_traits
contains the following members:
allocator_type
Alloc
value_type
Alloc::value_type
pointer
Alloc::pointer
if present, otherwise value_type*
const_pointer
Alloc::const_pointer
if present, otherwise std::pointer_traits<pointer>::rebind<const value_type> void_pointer
Alloc::void_pointer
if present, otherwise std::pointer_traits<pointer>::rebind<void> const_void_pointer
Alloc::const_void_pointer
if present, otherwise std::pointer_traits<pointer>::rebind<const void> difference_type
Alloc::difference_type
if present, otherwise std::pointer_traits<pointer>::difference_type size_type
Alloc::size_type
if present, otherwise std::make_unsigned<difference_type>::type propagate_on_container_copy_assignment
Alloc::propagate_on_container_copy_assignment
if present, otherwise std::false_type propagate_on_container_move_assignment
Alloc::propagate_on_container_move_assignment
if present, otherwise std::false_type propagate_on_container_swap
Alloc::propagate_on_container_swap
if present, otherwise std::false_type is_always_equal
Alloc::is_always_equal
if present, otherwise std::is_empty<Alloc>::type [edit] Member alias templates Type Definition rebind_alloc<T>
Alloc::rebind<T>::other
if present, otherwise SomeAllocator<T, Args>
if this Alloc
is of the form SomeAllocator<U, Args>, where Args is zero or more type arguments rebind_traits<T>
std::allocator_traits<rebind_alloc<T>> [edit] Member functions allocates uninitialized storage using the allocator
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior LWG 2108 C++11 there was no way to show an allocator is statelessis_always_equal
provided [edit] See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4