Scroll to navigation

std::experimental::pmr::monotonic_buffer_resource::do_allocate(3) C++ Standard Libary std::experimental::pmr::monotonic_buffer_resource::do_allocate(3)

NAME

std::experimental::pmr::monotonic_buffer_resource::do_allocate - std::experimental::pmr::monotonic_buffer_resource::do_allocate

Synopsis


virtual void* do_allocate( std::size_t bytes, std::size_t (library fundamentals TS)
alignment );


Allocates storage.


If the current buffer has sufficient unused space to fit a block with the specified
size and alignment, allocates the return block from the current buffer.


Otherwise, this function allocates a new buffer by calling
upstream_resource()->allocate(n, m), where n is not less than the greater of bytes
and the next buffer size and m is not less than alignment. It sets the new buffer as
the current buffer, increases the next buffer size by an implementation-defined
growth factor (which is not necessarily integral), and then allocates the return
block from the newly allocated buffer.

Return value


A pointer to allocated storage of at least bytes bytes in size, aligned to the
specified alignment if such alignment is supported, and to alignof(std::max_align_t)
otherwise.

Exceptions


Throws nothing unless calling allocate() on the upstream memory resource throws.

See also


allocates memory
allocate (public member function of std::experimental::pmr::memory_resource)


do_allocate allocates memory
[virtual] (virtual protected member function of
std::experimental::pmr::memory_resource)

Category:


* Noindexed pages

2024.06.10 http://cppreference.com