Namespaces
Variants

std::pmr::monotonic_buffer_resource:: do_allocate

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
virtual void * do_allocate ( std:: size_t bytes, std:: size_t alignment ) ;
(seit C++17)

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 allokiert diese Funktion einen neuen Puffer durch Aufruf von upstream_resource ( ) - > allocate ( n, m ) , 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 allokiert dann den Rückgabeblock aus dem neu allokierten Puffer.

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::pmr::memory_resource )
[virtual]
Speicher allozieren
(virtuelle private Elementfunktion von std::pmr::memory_resource )