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

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

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

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)

Exceptions

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

See also

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