Namespaces
Variants

std::experimental::pmr::monotonic_buffer_resource:: do_allocate

From cppreference.net
virtual void * do_allocate ( std:: size_t bytes, std:: size_t alignment ) ;
(Bibliotheksfundamente TS)

Weist Speicher zu.

Wenn der current buffer ausreichend ungenutzten Speicherplatz hat, um einen Block mit der angegebenen Größe und Ausrichtung aufzunehmen, weist er den Rückgabeblock aus dem current buffer zu.

Andernfalls weist diese Funktion einen neuen Puffer durch Aufruf von upstream_resource()->allocate(n, m) zu, wobei n nicht kleiner ist als der größere Wert von bytes und der nächsten Puffergröße und m nicht kleiner ist als alignment . Sie setzt den neuen Puffer als aktuellen Puffer , erhöht die nächste Puffergröße um einen implementierungsdefinierten Wachstumsfaktor (der nicht notwendigerweise ganzzahlig ist), und weist dann den Rückgabeblock aus dem neu zugewiesenen Puffer zu.

Rückgabewert

Ein Zeiger auf allokierten Speicher von mindestens bytes Bytes Größe, ausgerichtet an der angegebenen alignment falls solche Ausrichtung unterstützt wird, andernfalls an alignof ( std:: max_align_t ) .

Exceptions

Wirft nichts, es sei denn, der Aufruf von allocate() auf der vorgelagerten Speicherressource wirft.

Siehe auch

Speicher allozieren
(öffentliche Elementfunktion von std::experimental::pmr::memory_resource )
[virtual]
Speicher allozieren
(virtuelle geschützte Elementfunktion von std::experimental::pmr::memory_resource )