Namespaces
Variants

std::pmr::monotonic_buffer_resource:: do_allocate

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (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)
(C++11) (until C++23)
virtual void * do_allocate ( std:: size_t bytes, std:: size_t alignment ) ;
(desde C++17)

Asigna almacenamiento.

Si el buffer actual tiene suficiente espacio no utilizado para albergar un bloque con el tamaño y alineación especificados, asigna el bloque de retorno desde el buffer actual.

De lo contrario, esta función asigna un nuevo búfer llamando a upstream_resource ( ) - > allocate ( n, m ) , donde n no es menor que el mayor de bytes y el tamaño del siguiente búfer y m no es menor que alignment . Establece el nuevo búfer como el búfer actual , incrementa el tamaño del siguiente búfer por un factor de crecimiento definido por la implementación (que no necesariamente es integral), y luego asigna el bloque de retorno desde el búfer recién asignado.

Valor de retorno

Un puntero a almacenamiento asignado de al menos bytes bytes de tamaño, alineado al alignment especificado si dicha alineación es compatible, y a alignof ( std:: max_align_t ) en caso contrario.

Excepciones

No lanza nada a menos que la llamada a allocate() en el recurso de memoria ascendente lance una excepción.

Véase también

asigna memoria
(función miembro pública de std::pmr::memory_resource )
[virtual]
asigna memoria
(función miembro privada virtual de std::pmr::memory_resource )