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
)
;
|
(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
)
|