std::pmr::monotonic_buffer_resource::do_allocate
virtual void* do_allocate(std::size_t bytes, std::size_t alignment); |
(desde C++17) | |
Asigna almacenamiento.
Si el búfer actual tiene suficiente espacio sin usar para que quepa un bloque con el tamaño y la alineación especificados, asigna el bloque de retorno del búfer 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 búfer siguiente y m
no es menor que alignment
. Establece el nuevo búfer como el búfer actual, aumenta el tamaño del búfer siguiente por un factor de crecimiento definido por la implementación (que no es necesariamente un entero), y luego asigna el bloque de retorno del búfer recién asignado.
[editar] Valor de retorno
Un puntero al almacenamiento asignado de al menos bytes
bytes de tamaño, alineado con el alignment
especificado si dicha alineación es compatible, y con alignof(std::max_align_t) de lo contrario.
[editar] Excepciones
No lanza nada a menos que se llame a allocate()
sobre el recurso de memoria río arriba.
[editar] Véase también
Asigna memoria. (función miembro pública de std::pmr::memory_resource )
| |
[virtual] |
Asigna memoria. (función miembro virtual privada de std::pmr::memory_resource )
|