std::pmr:: unsynchronized_pool_resource
From cppreference.net
C++
Memory management library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::pmr::unsynchronized_pool_resource
| Public member functions | ||||
| Protected member functions | ||||
|
Défini dans l'en-tête
<memory_resource>
|
||
|
class
unsynchronized_pool_resource
:
public
std::
pmr
::
memory_resource
;
|
(depuis C++17) | |
La classe
std::pmr::unsynchronized_pool_resource
est une classe de ressource mémoire à usage général avec les propriétés suivantes :
-
Il possède la mémoire allouée et la libère lors de la destruction, même si
deallocaten'a pas été appelé pour certains blocs alloués. - Il consiste en une collection de pools qui répondent aux demandes pour différentes tailles de blocs. Chaque pool gère une collection de chunks qui sont ensuite divisés en blocs de taille uniforme.
- Les appels à do_allocate sont dispatchés vers le pool fournissant les plus petits blocs pouvant accommoder la taille demandée.
- L'épuisement de la mémoire dans le pool entraîne que la prochaine demande d'allocation pour ce pool alloue un chunk de mémoire supplémentaire depuis l' upstream allocator pour reconstituer le pool. La taille du chunk obtenu augmente géométriquement.
- Les demandes d'allocation qui dépassent la plus grande taille de bloc sont servies directement depuis l' upstream allocator .
- La plus grande taille de bloc et la taille maximale de chunk peuvent être ajustées en passant une structure std::pmr::pool_options à son constructeur.
unsynchronized_pool_resource
n'est pas thread-safe et ne peut pas être accédé depuis plusieurs threads simultanément ; utilisez
synchronized_pool_resource
si un accès depuis plusieurs threads est requis.
Fonctions membres
construit un
unsynchronized_pool_resource
(fonction membre publique) |
|
|
[virtuel]
|
détruit un
unsynchronized_pool_resource
, libérant toute la mémoire allouée
(fonction membre publique virtuelle) |
|
operator=
[supprimé]
|
l'opérateur d'affectation par copie est supprimé.
unsynchronized_pool_resource
n'est pas copiable par affectation
(fonction membre publique) |
Fonctions membres publiques |
|
|
libère toute la mémoire allouée
(fonction membre publique) |
|
|
retourne un pointeur vers la ressource mémoire amont
(fonction membre publique) |
|
|
retourne les options qui contrôlent le comportement de regroupement de cette ressource
(fonction membre publique) |
|
Fonctions membres protégées |
|
|
[virtuel]
|
alloue de la mémoire
(fonction membre protégée virtuelle) |
|
[virtuel]
|
retourne la mémoire au regroupement
(fonction membre protégée virtuelle) |
|
[virtuel]
|
compare pour l'égalité avec un autre
std::pmr::memory_resource
(fonction membre protégée virtuelle) |