##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# Standard library header <experimental/memory_resource>

From cppreference.com
< cpp‎ | header

This header is part of the experimental library.

### [edit] Classes

Name | Description
std::experimental::pmr::memory_resource (library fundamentals TS) | Abstract interface for classes that encapsulate memory resources (class)
std::experimental::pmr::polymorphic_allocator (library fundamentals TS) | Template class for run-time polymorphism of `Allocator`s (class template)
std::experimental::pmr::resource_adaptor (library fundamentals TS) | Wraps an `Allocator` in a `memory_resource` (template alias)
std::experimental::pmr::pool_options (library fundamentals TS) | Passes options to pool resource constructors (struct)
std::experimental::pmr::synchronized_pool_resource (library fundamentals TS) | Thread-safe `memory_resource` for allocating memory in pools (class)
std::experimental::pmr::unsynchronized_pool_resource (library fundamentals TS) | Thread-unsafe `memory_resource` for allocating memory in pools (class)
std::experimental::pmr::monotonic_buffer_resource (library fundamentals TS) | `memory_resource` that allocates memory monotonically and only releases it on destruction (class)

### [edit] Functions

##### Comparison
operator==operator!= | compares two resources (function) [edit]
operator==operator!= | compares two allocators (function template) [edit]
##### Global memory resources
new_delete_resource | returns the static program-wide `memory_resource` (function) [edit]
null_memory_resource | returns a static `memory_resource` that performs no allocation (function) [edit]
##### Default memory resource
set_default_resource get_default_resource | sets and gets the default `memory_resource` (function) [edit]

### [edit] 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<
          allocator_traits<Allocator>::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

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