Defined in header
<memory_resource> | ||
---|---|---|
template< class T > class polymorphic_allocator; | (since C++17) |
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.
Member type | definition |
---|---|
value_type | T |
Constructs a polymorphic_allocator (public member function) |
|
(destructor)
(implicitly declared)
| Implicitly declared destructor (public member function) |
operator=
[deleted]
| Copy assignment operator is deleted (public member function) |
Public member functions |
|
Allocate memory (public member function) |
|
Deallocate memory (public member function) |
|
Constructs an object in allocated storage (public member function) |
|
Destroys an object in allocated storage (public member function) |
|
Create a new polymorphic_allocator for use by a container's copy constructor (public member function) |
|
Returns a pointer to the underlying memory resource (public member function) |
compare two polymorphic_allocator s (function) |
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.
(C++17)
| an abstract interface for classes that encapsulate memory resources (class) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/memory/polymorphic_allocator