Standard library header <experimental/memory_resource>

From cppreference.com
< cpp‎ | header

This header is part of the experimental library.

Contents

[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 Allocators (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
compares two resources
(function)
compares two allocators
(function template)
Global memory resources
returns the static program-wide memory_resource
(function)
returns a static memory_resource that performs no allocation
(function)
Default memory resource
sets and gets the default memory_resource
(function)

[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