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 ) ;
(spécifications techniques des bibliothèques fondamentales)

Alloue de la mémoire.

Si le tampon actuel dispose d'un espace inutilisé suffisant pour contenir 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::experimental::pmr::memory_resource )
[virtual]
alloue de la mémoire
(fonction membre protégée virtuelle de std::experimental::pmr::memory_resource )