std::pmr::polymorphic_allocator (3) Linux Manual Page
std::pmr::polymorphic_allocator – std::pmr::polymorphic_allocator
Synopsis
template< class T > (since C++17)
class polymorphic_allocator; (until C++20)
template< class T = std::byte > (since C++20)
class polymorphic_allocator;
The class template std::pmr::polymorphic_allocator is an Allocator whose allocation behavior depends on the memory resource it is constructed with. Thus, different instances of polymorphic_allocator can exhibit entirely different allocation behavior. This runtime polymorphism allows objects using polymorphic_allocator to behave as if they used different allocator types at run time despite the identical static allocator type.
All specializations of polymorphic_allocator meet the Allocator_completeness_requirements.
Member types
Member type definition
value_type T
Member functions
constructor (public member function)
destructor Implicitly declared destructor
(implicitly declared)
operator= Copy assignment operator is deleted
[deleted]
Public member functions
allocate (public member function)
deallocate (public member function)
construct (public member function)
destroy (public member function)
allocate_bytes Allocate raw aligned memory from the underlying resource
(C++20)
deallocate_bytes Free raw memory obtained from allocate_bytes
(C++20)
allocate_object Allocates raw memory suitable for an object or an array
(C++20)
deallocate_object Frees raw memory obtained by allocate_object
(C++20)
new_object Allocates and constructs an object
(C++20)
delete_object Destroys and deallocates an object
(C++20)
select_on_container_copy_construction (public member function)
resource (public member function)
Non-member functions
operator== (function)
operator!=
Notes
polymorphic_allocator does not propagate on container copy assignment, move assignment, or swap. As a result, move assignment of a polymorphic_allocator-using container can throw, and swapping two polymorphic_allocator-using containers whose allocators do not compare equal results in undefined behavior.
See also
memory_resource an abstract interface for classes that encapsulate memory resources
(C++17)
