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