##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# Polymorphic allocator library

From cppreference.com
< cpp‎ | experimental

The C++ Extensions for Library Fundamentals includes classes for providing allocator type erasure and runtime polymorphism.

### [edit] std::experimental::pmr::memory_resource

The memory_resource class is an abstract interface for classes that encapsulate memory resources.

The library provides the following concrete classes:

Defined in header `<experimental/memory_resource>`
Class | Description
std::experimental::pmr::synchronized_pool_resource std::experimental::pmr::unsynchronized_pool_resource | Pool resources are a type of memory_resource for managing allocations in pools of different block sizes. The library provides both a thread-safe and unsafe pool resource.
std::experimental::pmr::monotonic_buffer_resource | A special-purpose memory_resource intended for very fast memory allocations in situations where memory is used to build up a few objects and then is released all at once when the buffer is destroyed.

### [edit] std::experimental::pmr::polymorphic_allocator

Using a specialization of the class template `pmr::polymorphic_allocator` with an allocator-aware class allows allocators to be used polymorphically at run time.

### [edit] std::experimental::pmr::resource_adaptor

The template alias `resource_adaptor` wraps a memory_resource interface around an allocator.

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