std::experimental::pmr::monotonic_buffer_resource:: do_allocate
|
virtual
void
*
do_allocate
(
std::
size_t
bytes,
std::
size_t
alignment
)
;
|
(biblioteca fundamentals TS) | |
Asigna almacenamiento.
Si el buffer actual tiene suficiente espacio sin utilizar 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 entre
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 es necesariamente 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::experimental::pmr::memory_resource
)
|
|
|
[virtual]
|
asigna memoria
(función miembro protegida virtual de
std::experimental::pmr::memory_resource
)
|