Experimental library header <experimental/memory_resource>
From cppreference.com
                    
                                        
                    < cpp | header | experimental
                    
                                                            
                    This header is part of the Library Fundamentals TS (v1, v2, v3).
Classes
| Defined in  namespace  std::experimental::pmr | |
| an abstract interface for classes that encapsulate memory resources (class) | |
| a thread-safe memory_resource for managing allocations in pools of different block sizes (class) | |
| a thread-unsafe memory_resource for managing allocations in pools of different block sizes (class) | |
| a special-purpose memory_resource that releases the allocated memory only when the resource is destroyed (class) | |
| an allocator that supports run-time polymorphism based on the memory_resource it is constructed with (class template) | |
| adapts an allocator into a memory_resource (alias template) | |
Functions
| Defined in  namespace  std::experimental::pmr | |
| Comparison | |
| compare two memory_resources(function) | |
| compares two allocators (function template) | |
| Global memory resources | |
| returns a static program-wide memory_resourcethat uses the global operator new and operator delete to allocate and deallocate memory(function) | |
| returns a static memory_resourcethat performs no allocation(function) | |
| Default memory resource | |
| gets the default memory_resource(function) | |
| sets the default memory_resource(function) | |
Synopsis
namespace std { namespace experimental { inline namespace fundamentals_v1 { namespace pmr { class memory_resource; bool operator==(const memory_resource& a, const memory_resource& b) noexcept; bool operator!=(const memory_resource& a, const memory_resource& b) noexcept; template <class Tp> class polymorphic_allocator; template <class T1, class T2> bool operator==(const polymorphic_allocator<T1>& a, const polymorphic_allocator<T2>& b) noexcept; template <class T1, class T2> bool operator!=(const polymorphic_allocator<T1>& a, const polymorphic_allocator<T2>& b) noexcept; // The name resource_adaptor_imp is for exposition only. template <class Allocator> class resource_adaptor_imp; template <class Allocator> using resource_adaptor = resource_adaptor_imp< typename allocator_traits<Allocator>::template rebind_alloc<char>>; // Global memory resources memory_resource* new_delete_resource() noexcept; memory_resource* null_memory_resource() noexcept; // The default memory resource memory_resource* set_default_resource(memory_resource* r) noexcept; memory_resource* get_default_resource() noexcept; // Standard memory resources struct pool_options; class synchronized_pool_resource; class unsynchronized_pool_resource; class monotonic_buffer_resource; } // namespace pmr } // namespace fundamentals_v1 } // namespace experimental } // namespace std