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 ) ;
(depuis C++17)

Alloue de l'espace mémoire.

Si le tampon actuel dispose d'un espace inutilisé suffisant pour accueillir un bloc avec la taille et l'alignement spécifiés, alloue le bloc de retour à partir du tampon actuel.

Sinon, cette fonction alloue un nouveau tampon en appelant upstream_resource ( ) - > allocate ( n, m ) , où n n'est pas inférieur au plus grand entre bytes et la taille de tampon suivante et m n'est pas inférieur à alignment . Elle définit le nouveau tampon comme tampon actuel , augmente la taille de tampon suivante d'un facteur de croissance défini par l'implémentation (qui n'est pas nécessairement entier), puis alloue le bloc de retour à partir du tampon nouvellement alloué.

Valeur de retour

Un pointeur vers un espace mémoire alloué d'au moins bytes octets, aligné sur la alignment spécifiée si un tel alignement est pris en charge, et sur alignof ( std:: max_align_t ) sinon.

Exceptions

Ne lance rien sauf si l'appel à allocate() sur la ressource mémoire amont lance une exception.

Voir aussi

alloue de la mémoire
(fonction membre publique de std::pmr::memory_resource )
[virtual]
alloue de la mémoire
(fonction membre privée virtuelle de std::pmr::memory_resource )