# 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.

### Member types

Member type | definition
`value_type` | `T`

### Member functions

(constructor) | Constructs a `polymorphic_allocator` (public member function)
(destructor) (implicitly declared) | Implicitly declared destructor (public member function)
operator= | Copy assignment operator (public member function)

##### Public member functions

allocate | Allocate memory (public member function)
deallocate | Deallocate memory (public member function)
construct | Constructs an object in allocated storage (public member function)
destroy | Destroys an object in allocated storage (public member function)
select_on_container_copy_construction | Create a new `polymorphic_allocator` for use by a container's copy constructor (public member function)
resource | Returns a pointer to the underlying memory resource (public member function)

### Non-member functions

operator==operator!= | compare two `polymorphic_allocator`s (function)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/experimental/polymorphic_allocator&oldid=84477"