std::pmr::monotonic_buffer_resource:: do_allocate

From cppreference.com
Dynamic memory management
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Allocators
Garbage collection support
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)



virtual void * do_allocate ( std:: size_t bytes, std:: size_t alignment ) ;
(since C++17)

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
(public member function of std::pmr::memory_resource )
[virtual]
allocates memory
(virtual private member function of std::pmr::memory_resource )