std::allocator_traits(3) C++ Standard Libary std::allocator_traits(3) NAME std::allocator_traits - std::allocator_traits Synopsis Defined in header <memory> template< class Alloc > (since C++11) struct allocator_traits; The allocator_traits class template provides the standardized way to ac- cess various properties of Allocators. The standard containers and other standard li- brary components access allocators through this template, which makes it pos- sible to use any class type as an allocator, as long as the user-provided specializa- tion of std::allocator_traits implements all required functionality. A program that declares an explicit or partial specialization of (since C++23) std::allocator_traits is ill-formed, no diagnostic required. The default, non-specialized, std::allocator_traits contains the follow- ing members: Member types Type Definition allocator_type Alloc value_type Alloc::value_type pointer Alloc::pointer if present, other- wise value_type* Alloc::const_pointer if present, otherwise const_pointer std::pointer_traits<pointer>::re- bind<const value_type> void_pointer Alloc::void_pointer if present, otherwise std::pointer_traits<pointer>::re- bind<void> Alloc::const_void_pointer if present, const_void_pointer otherwise std::pointer_traits<pointer>::re- bind<const void> difference_type Alloc::difference_type if present, otherwise std::pointer_traits<pointer>::dif- ference_type size_type Alloc::size_type if present, oth- erwise std::make_unsigned<differ- ence_type>::type propagate_on_container_copy_assignment Alloc::propagate_on_con- tainer_copy_assignment if present, otherwise std::false_type propagate_on_container_move_assignment Alloc::propagate_on_con- tainer_move_assignment if present, otherwise std::false_type propagate_on_container_swap Alloc::propagate_on_con- tainer_swap if present, otherwise std::false_type is_always_equal Alloc::is_always_equal if present, otherwise std::is_empty<Alloc>::type Member alias templates Type Definition Alloc::rebind<T>::other if present, otherwise SomeAllo- cator<T, rebind_alloc<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>> Member functions allocate allocates uninitialized storage using the [static] allocator (public static member function) allocate_at_least allocates storage at least as large as the [static] (C++23) requested size via an allocator (public static member function) deallocate deallocates storage using the al- locator [static] (public static member function) construct constructs an object in the allo- cated storage [static] (function template) destroy destructs an object stored in the allocated [static] storage (function template) max_size returns the maximum object size supported by [static] the allocator (public static member function) select_on_container_copy_construction obtains the allocator to use after copying a [static] standard container (public static member function) Defect reports The following behavior-changing defect reports were applied retroac- tively 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_al- ways_equal provided is stateless See also AllocatorAwareContainer container using allocator; associated traits (e.g. (C++11) propagate_on_container_swap) usage (named requirement) allocator the default allocator (class template) scoped_allocator_adaptor implements multi-level allocator for multi- level containers (C++11) (class template) pointer_traits provides information about pointer-like types (C++11) (class template) http://cppreference.com 2024.06.10 std::allocator_traits(3)
Want to link to this manual page? Use this URL:
<https://man.FreeBSD.org/cgi/man.cgi?query=std::allocator_traits&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>