std::pmr::monotonic_buffer_resource:: do_allocate
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Public member functions | ||||
| Protected member functions | ||||
|
monotonic_buffer_resource::do_allocate
|
||||
|
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
)
|