std::experimental::pmr::polymorphic_allocator
From cppreference.com
                    
                                        
                    < cpp | experimental
                    
                                                            
                    |   Defined in header  
<experimental/memory_resource>
  | 
||
|   template< class T > 
class polymorphic_allocator;  | 
(library fundamentals TS) | |
The class template std::experimental::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.
Contents | 
[edit] Member types
| Member type | definition | 
 value_type
 | 
  T
 | 
[edit] Member functions
  Constructs a polymorphic_allocator (public member function)  | 
|
|    (destructor) 
(implicitly declared) 
 | 
  Implicitly declared destructor  (public member function)  | 
|    Copy assignment operator  (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)  | 
|
[edit] Non-member functions
  compare two polymorphic_allocators (function)  |