20
Memory management library
[mem]
20.4
Memory resources
[mem.res]
20.4.2
Class
memory_
resource
[mem.res.class]
20.4.2.1
General
[mem.res.class.general]
1
#
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
)
;
//
exposition only
public
:
memory_resource
(
)
=
default
; memory_resource
(
const
memory_resource
&
)
=
default
;
virtual
~
memory_resource
(
)
; memory_resource
&
operator
=
(
const
memory_resource
&
)
=
default
;
[
[
nodiscard
]
]
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
;
}
;
}