[mem.res.class.general] (original) (raw)
The memory_resource class is an abstract interface to an unbounded set of classes encapsulating memory resources.
namespace std::pmr { class memory_resource { static constexpr size_t max_align = alignof(max_align_t); public: memory_resource() = default; memory_resource(const memory_resource&) = default;virtual ~memory_resource(); memory_resource& operator=(const memory_resource&) = default;void* allocate(size_t bytes, size_t alignment = max_align);void deallocate(void* p, size_t bytes, size_t alignment = max_align);bool is_equal(const memory_resource& other) const noexcept;private: virtual void* do_allocate(size_t bytes, size_t alignment) = 0;virtual void do_deallocate(void* p, size_t bytes, size_t alignment) = 0;virtual bool do_is_equal(const memory_resource& other) const noexcept = 0;};}