Memory management library
Pointeurs intelligents (depuis C++11)
Les pointeurs intelligents permettent une gestion automatique et sûre face aux exceptions de la durée de vie des objets.
|
Défini dans l'en-tête
<memory>
|
|
Catégories de pointeurs |
|
|
(C++11)
|
pointeur intelligent avec sémantique de propriété exclusive d'objet
(modèle de classe) |
|
(C++11)
|
pointeur intelligent avec sémantique de propriété partagée d'objet
(modèle de classe) |
|
(C++11)
|
référence faible à un objet géré par
std::shared_ptr
(modèle de classe) |
|
(obsolète en C++11)
(supprimé en C++17)
|
pointeur intelligent avec sémantique de propriété stricte d'objet
(modèle de classe) |
Classes auxiliaires |
|
|
(C++11)
|
fournit un ordonnancement basé sur le propriétaire de types mixtes pour les pointeurs partagés et faibles
(modèle de classe) |
|
(C++26)
|
fournit un hachage basé sur le propriétaire pour les pointeurs partagés et faibles
(classe) |
|
(C++26)
|
fournit des comparaisons d'égalité basées sur le propriétaire de types mixtes pour les pointeurs partagés et faibles
(classe) |
|
(C++11)
|
permet à un objet de créer un
shared_ptr
se référant à lui-même
(modèle de classe) |
|
(C++11)
|
exception levée lors de l'accès à un
weak_ptr
qui référence un objet déjà détruit
(classe) |
|
(C++11)
|
suppresseur par défaut pour
unique_ptr
(modèle de classe) |
Adaptateurs de pointeurs intelligents (depuis C++23) |
|
|
(C++23)
|
interagit avec les définisseurs de pointeurs étrangers et réinitialise un pointeur intelligent lors de la destruction
(modèle de classe) |
|
(C++23)
|
crée un
out_ptr_t
avec un pointeur intelligent associé et des arguments de réinitialisation
(modèle de fonction) |
|
(C++23)
|
interagit avec les définisseurs de pointeurs étrangers, obtient la valeur initiale du pointeur d'un pointeur intelligent, et le réinitialise lors de la destruction
(modèle de classe) |
|
(C++23)
|
crée un
inout_ptr_t
avec un pointeur intelligent associé et des arguments de réinitialisation
(modèle de fonction) |
Allocateurs
Les allocateurs sont des modèles de classe encapsulant une stratégie d'allocation mémoire. Cela permet aux conteneurs génériques de découpler la gestion de la mémoire des données elles-mêmes.
|
Défini dans l'en-tête
<memory>
|
|
|
l'allocateur par défaut
(modèle de classe) |
|
|
(C++11)
|
fournit des informations sur les types d'allocateur
(modèle de classe) |
|
(C++23)
|
enregistre l'adresse et la taille réelle de la mémoire allouée par
allocate_at_least
(modèle de classe) |
|
(C++11)
|
une balise utilisée pour sélectionner les constructeurs sensibles aux allocateurs
(balise) |
|
(C++11)
|
vérifie si le type spécifié prend en charge la construction avec allocateur
(modèle de classe) |
|
(C++20)
|
prépare la liste d'arguments correspondant au type de construction avec allocateur requis par le type donné
(modèle de fonction) |
|
(C++20)
|
crée un objet du type donné au moyen de la construction avec allocateur
(modèle de fonction) |
|
crée un objet du type donné à un emplacement mémoire spécifié au moyen de la construction avec allocateur
(modèle de fonction) |
|
|
Défini dans l'en-tête
<scoped_allocator>
|
|
|
(C++11)
|
implémente un allocateur multi-niveaux pour les conteneurs multi-niveaux
(modèle de classe) |
|
Défini dans l'en-tête
<memory_resource>
|
|
|
Défini dans l'espace de noms
std::pmr
|
|
|
(C++17)
|
un allocateur qui prend en charge le polymorphisme à l'exécution basé sur la
std::pmr::memory_resource
avec laquelle il est construit
(modèle de classe) |
Ressources mémoire (depuis C++17)
Les ressources mémoire implémentent des stratégies d'allocation de mémoire qui peuvent être utilisées par std::pmr::polymorphic_allocator .
|
Défini dans l'en-tête
<memory_resource>
|
|
|
Défini dans l'espace de noms
std::pmr
|
|
|
(C++17)
|
une interface abstraite pour les classes qui encapsulent les ressources mémoire
(classe) |
|
(C++17)
|
retourne une
std::pmr::memory_resource
statique à l'échelle du programme qui utilise les
operator new
et
operator delete
globaux pour allouer et désallouer la mémoire
(fonction) |
|
(C++17)
|
retourne une
std::pmr::memory_resource
statique qui n'effectue aucune allocation
(fonction) |
|
(C++17)
|
obtient la
std::pmr::memory_resource
par défaut
(fonction) |
|
(C++17)
|
définit la
std::pmr::memory_resource
par défaut
(fonction) |
|
(C++17)
|
un ensemble d'options de constructeur pour les ressources de pool
(classe) |
|
(C++17)
|
une
std::pmr::memory_resource
thread-safe pour gérer les allocations dans des pools de différentes tailles de blocs
(classe) |
|
(C++17)
|
une
std::pmr::memory_resource
non thread-safe pour gérer les allocations dans des pools de différentes tailles de blocs
(classe) |
|
(C++17)
|
une
std::pmr::memory_resource
à usage spécial qui libère la mémoire allouée uniquement lorsque la ressource est détruite
(classe) |
Algorithmes de mémoire non initialisée
|
Défini dans l'en-tête
<memory>
|
|
|
copie une plage d'objets vers une zone mémoire non initialisée
(modèle de fonction) |
|
|
(C++11)
|
copie un nombre d'objets vers une zone mémoire non initialisée
(modèle de fonction) |
|
copie un objet vers une zone mémoire non initialisée, définie par une plage
(modèle de fonction) |
|
|
copie un objet vers une zone mémoire non initialisée, définie par un début et un compte
(modèle de fonction) |
|
|
(C++17)
|
déplace une plage d'objets vers une zone mémoire non initialisée
(modèle de fonction) |
|
(C++17)
|
déplace un nombre d'objets vers une zone mémoire non initialisée
(modèle de fonction) |
|
(C++17)
|
construit des objets par
initialisation par défaut
dans une zone mémoire non initialisée, définie par une plage
(modèle de fonction) |
|
construit des objets par
initialisation par défaut
dans une zone mémoire non initialisée, définie par un début et un compte
(modèle de fonction) |
|
|
(C++17)
|
construit des objets par
initialisation par valeur
dans une zone mémoire non initialisée, définie par une plage
(modèle de fonction) |
|
(C++17)
|
construit des objets par
initialisation par valeur
dans une zone mémoire non initialisée, définie par un début et un compte
(modèle de fonction) |
|
(C++17)
|
détruit un objet à une adresse donnée
(modèle de fonction) |
|
(C++17)
|
détruit une plage d'objets
(modèle de fonction) |
|
(C++17)
|
détruit un nombre d'objets dans une plage
(modèle de fonction) |
|
(C++20)
|
crée un objet à une adresse donnée
(modèle de fonction) |
Algorithmes de mémoire non initialisée contraints (depuis C++20)
C++20 fournit des algorithmes de mémoire non initialisée contraints qui acceptent des arguments de plage ou des paires itérateur-sentinelle.
|
Défini dans l'en-tête
<memory>
|
|
|
Défini dans l'espace de noms
std::ranges
|
|
|
spécifie que certaines opérations sur les itérateurs, sentinelles et plages ne lèvent pas d'exception
( concept d'exposition uniquement* ) |
|
|
(C++20)
|
copie une plage d'objets vers une zone mémoire non initialisée
(objet fonction algorithme) |
|
(C++20)
|
copie un nombre d'objets vers une zone mémoire non initialisée
(objet fonction algorithme) |
|
(C++20)
|
copie un objet vers une zone mémoire non initialisée, définie par une plage
(objet fonction algorithme) |
|
(C++20)
|
copie un objet vers une zone mémoire non initialisée, définie par un début et un compte
(objet fonction algorithme) |
|
(C++20)
|
déplace une plage d'objets vers une zone mémoire non initialisée
(objet fonction algorithme) |
|
(C++20)
|
déplace un nombre d'objets vers une zone mémoire non initialisée
(objet fonction algorithme) |
|
construit des objets par
initialisation par défaut
dans une zone mémoire non initialisée, définie par une plage
(objet fonction algorithme) |
|
|
construit des objets par
initialisation par défaut
dans une zone mémoire non initialisée, définie par un début et un compte
(objet fonction algorithme) |
|
|
construit des objets par
initialisation par valeur
dans une zone mémoire non initialisée, définie par une plage
(objet fonction algorithme) |
|
|
construit des objets par
initialisation par valeur
dans une zone mémoire non initialisée, définie par un début et un compte
(objet fonction algorithme) |
|
|
(C++20)
|
détruit un objet à une adresse donnée
(objet fonction algorithme) |
|
(C++20)
|
détruit une plage d'objets
(objet fonction algorithme) |
|
(C++20)
|
détruit un nombre d'objets dans une plage
(objet fonction algorithme) |
|
(C++20)
|
crée un objet à une adresse donnée
(objet fonction algorithme) |
Gestion explicite de la durée de vie (depuis C++23)
|
Défini dans l'en-tête
<memory>
|
|
|
crée implicitement des objets dans un stockage donné avec la représentation d'objet réutilisée
(modèle de fonction) |
|
Types pour la conception de classes composites (depuis C++26)
|
Défini dans l'en-tête
<memory>
|
|
|
(C++26)
|
un wrapper contenant un objet alloué dynamiquement avec une sémantique de valeur
(modèle de classe) |
|
(C++26)
|
un wrapper polymorphe contenant un objet alloué dynamiquement avec une sémantique de valeur
(modèle de classe) |
Divers
|
Défini dans l'en-tête
<memory>
|
|
|
(C++11)
|
fournit des informations sur les types de type pointeur
(modèle de classe) |
|
(C++20)
|
obtient un pointeur brut à partir d'un type de type pointeur
(modèle de fonction) |
|
(C++11)
|
obtient l'adresse réelle d'un objet, même si l'opérateur
&
est surchargé
(modèle de fonction) |
|
(C++11)
|
aligne un pointeur dans un tampon
(fonction) |
|
(C++20)
|
informe le compilateur qu'un pointeur est aligné
(modèle de fonction) |
|
(C++26)
|
vérifie si le pointeur pointe vers un objet dont l'alignement a au moins la valeur donnée
(modèle de fonction) |
Gestion de la mémoire bas niveau
Inclut par exemple operator new , operator delete , std::set_new_handler .
|
Défini dans l'en-tête
<new>
|
Gestion de la mémoire de style C
Inclut par exemple std::malloc , std::free .
|
Défini dans l'en-tête
<cstdlib>
|
Stockage non initialisé (jusqu'à C++20)
Plusieurs utilitaires sont fournis pour créer et accéder au stockage brut.
|
Défini dans l'en-tête
<memory>
|
|
|
(obsolète en C++17)
(supprimé en C++20)
|
un itérateur qui permet aux algorithmes standards de stocker des résultats dans une mémoire non initialisée
(modèle de classe) |
|
(obsolète en C++17)
(supprimé en C++20)
|
obtient un stockage non initialisé
(modèle de fonction) |
|
(obsolète en C++17)
(supprimé en C++20)
|
libère le stockage non initialisé
(modèle de fonction) |
Support du ramasse-miettes (jusqu'à C++23)
|
Défini dans l'en-tête
<memory>
|
|
|
(C++11)
(supprimé en C++23)
|
déclare qu'un objet ne peut pas être recyclé
(fonction) |
|
(C++11)
(supprimé en C++23)
|
déclare qu'un objet peut être recyclé
(modèle de fonction) |
|
(C++11)
(supprimé en C++23)
|
déclare qu'une zone mémoire ne contient pas de pointeurs traçables
(fonction) |
|
(C++11)
(supprimé en C++23)
|
annule l'effet de
std::declare_no_pointers
(fonction) |
|
(C++11)
(supprimé en C++23)
|
énumère les modèles de sécurité des pointeurs
(énumération) |
|
(C++11)
(supprimé en C++23)
|
retourne le modèle de sécurité des pointeurs actuel
(fonction) |