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.
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.
Excepciones
No lanza nada a menos que se llame a allocate() sobre el recurso de memoria río arriba.
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)
|