Memory management library
Smart Pointer (seit C++11)
Smart Pointer ermöglichen eine automatische, ausnahmesichere Verwaltung der Objektlebensdauer.
|
Definiert im Header
<memory>
|
|
Zeiger-Kategorien |
|
|
(C++11)
|
Intelligenter Zeiger mit eindeutiger Objektbesitzsemantik
(Klassentemplate) |
|
(C++11)
|
Intelligenter Zeiger mit gemeinsamer Objektbesitzsemantik
(Klassentemplate) |
|
(C++11)
|
Schwache Referenz auf ein von
std::shared_ptr
verwaltetes Objekt
(Klassentemplate) |
|
(veraltet in C++11)
(entfernt in C++17)
|
Intelligenter Zeiger mit strikter Objektbesitzsemantik
(Klassentemplate) |
Hilfsklassen |
|
|
(C++11)
|
Bietet gemischte besitzerbasierte Ordnung von shared und weak Zeigern
(Klassentemplate) |
|
(C++26)
|
Bietet besitzerbasiertes Hashing für shared und weak Zeiger
(Klasse) |
|
(C++26)
|
Bietet gemischte besitzerbasierte Gleichheitsvergleiche von shared und weak Zeigern
(Klasse) |
|
(C++11)
|
Ermöglicht einem Objekt die Erstellung eines
shared_ptr
, der auf sich selbst verweist
(Klassentemplate) |
|
(C++11)
|
Ausnahme, die beim Zugriff auf einen
weak_ptr
ausgelöst wird, der auf ein bereits zerstörtes Objekt verweist
(Klasse) |
|
(C++11)
|
Standard-Löscher für
unique_ptr
(Klassentemplate) |
Smart-Pointer-Adapter (seit C++23) |
|
|
(C++23)
|
Interagiert mit Fremdzeiger-Settern und setzt einen Smart Pointer bei Zerstörung zurück
(Klassentemplate) |
|
(C++23)
|
Erstellt einen
out_ptr_t
mit einem assoziierten Smart Pointer und Zurücksetzargumenten
(Funktionstemplate) |
|
(C++23)
|
Interagiert mit Fremdzeiger-Settern, ermittelt den anfänglichen Zeigerwert von einem Smart Pointer und setzt ihn bei Zerstörung zurück
(Klassentemplate) |
|
(C++23)
|
Erstellt einen
inout_ptr_t
mit einem assoziierten Smart Pointer und Zurücksetzargumenten
(Funktionstemplate) |
Allokatoren
Allocatoren sind Klassentemplates, die eine Speicherallokationsstrategie kapseln. Dies ermöglicht es generischen Containern, die Speicherverwaltung von den Daten selbst zu entkoppeln.
|
Definiert im Header
<memory>
|
|
|
der Standard-Allocator
(Klassen-Template) |
|
|
(C++11)
|
stellt Informationen über Allocator-Typen bereit
(Klassen-Template) |
|
(C++23)
|
speichert die Adresse und die tatsächliche Größe des von
allocate_at_least
allokierten Speichers
(Klassen-Template) |
|
(C++11)
|
ein Tag zur Auswahl allocator-sensitiver Konstruktoren
(Tag) |
|
(C++11)
|
prüft, ob der angegebene Typ Uses-Allocator-Konstruktion unterstützt
(Klassen-Template) |
|
(C++20)
|
bereitet die Argumentliste passend zur vom gegebenen Typ benötigten Uses-Allocator-Konstruktionsvariante vor
(Funktions-Template) |
|
(C++20)
|
erstellt ein Objekt des gegebenen Typs mittels Uses-Allocator-Konstruktion
(Funktions-Template) |
|
erstellt ein Objekt des gegebenen Typs an einem bestimmten Speicherort mittels Uses-Allocator-Konstruktion
(Funktions-Template) |
|
|
Definiert im Header
<scoped_allocator>
|
|
|
(C++11)
|
implementiert einen mehrstufigen Allocator für mehrstufige Container
(Klassen-Template) |
|
Definiert im Header
<memory_resource>
|
|
|
Definiert im Namespace
std::pmr
|
|
|
(C++17)
|
ein Allocator, der Laufzeit-Polymorphie basierend auf der
std::pmr::memory_resource
unterstützt, mit der er konstruiert wurde
(Klassen-Template) |
Speicherressourcen (seit C++17)
Speicherressourcen implementieren Speicherzuweisungsstrategien, die von std::pmr::polymorphic_allocator verwendet werden können.
|
Definiert im Header
<memory_resource>
|
|
|
Definiert im Namespace
std::pmr
|
|
|
(C++17)
|
eine abstrakte Schnittstelle für Klassen, die Speicherressourcen kapseln
(Klasse) |
|
(C++17)
|
gibt eine statische, programmweite
std::pmr::memory_resource
zurück, die den globalen
operator new
und
operator delete
zur Speicherallokation und -freigabe verwendet
(Funktion) |
|
(C++17)
|
gibt eine statische
std::pmr::memory_resource
zurück, die keine Allokation durchführt
(Funktion) |
|
(C++17)
|
ruft die Standard-
std::pmr::memory_resource
ab
(Funktion) |
|
(C++17)
|
setzt die Standard-
std::pmr::memory_resource
(Funktion) |
|
(C++17)
|
eine Menge von Konstruktoroptionen für Pool-Ressourcen
(Klasse) |
|
(C++17)
|
eine threadsichere
std::pmr::memory_resource
zur Verwaltung von Allokationen in Pools mit verschiedenen Blockgrößen
(Klasse) |
|
(C++17)
|
eine nicht threadsichere
std::pmr::memory_resource
zur Verwaltung von Allokationen in Pools mit verschiedenen Blockgrößen
(Klasse) |
|
(C++17)
|
eine spezielle
std::pmr::memory_resource
die den allokierten Speicher nur freigibt, wenn die Ressource zerstört wird
(Klasse) |
Nicht initialisierte Speicheralgorithmen
|
Definiert im Header
<memory>
|
|
|
kopiert eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Funktions-Template) |
|
|
(C++11)
|
kopiert eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich
(Funktions-Template) |
|
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template) |
|
|
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Funktions-Template) |
|
|
(C++17)
|
verschiebt eine Reihe von Objekten in einen nicht initialisierten Speicherbereich
(Funktions-Template) |
|
(C++17)
|
verschiebt eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich
(Funktions-Template) |
|
(C++17)
|
konstruiert Objekte durch
Default-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template) |
|
konstruiert Objekte durch
Default-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Funktions-Template) |
|
|
(C++17)
|
konstruiert Objekte durch
Wert-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template) |
|
(C++17)
|
konstruiert Objekte durch
Wert-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Funktions-Template) |
|
(C++17)
|
zerstört ein Objekt an einer gegebenen Adresse
(Funktions-Template) |
|
(C++17)
|
zerstört eine Reihe von Objekten
(Funktions-Template) |
|
(C++17)
|
zerstört eine Anzahl von Objekten in einem Bereich
(Funktions-Template) |
|
(C++20)
|
erstellt ein Objekt an einer gegebenen Adresse
(Funktions-Template) |
Eingeschränkte Algorithmen für nicht initialisierten Speicher (seit C++20)
C++20 bietet eingeschränkte uninitialisierte Speicheralgorithmen, die Bereichsargumente oder Iterator-Sentinel-Paare akzeptieren.
|
Definiert in Header
<memory>
|
|
|
Definiert in Namespace
std::ranges
|
|
|
spezifiziert, dass bestimmte Operationen auf Iteratoren, Sentinels und Ranges nicht werfend sind
( exposition-only concept* ) |
|
|
(C++20)
|
kopiert einen Bereich von Objekten in einen nicht initialisierten Speicherbereich
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
kopiert eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Range
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
kopiert ein Objekt in einen nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
bewegt einen Bereich von Objekten in einen nicht initialisierten Speicherbereich
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
bewegt eine Anzahl von Objekten in einen nicht initialisierten Speicherbereich
(Algorithmus-Funktionsobjekt) |
|
konstruiert Objekte durch
Default-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Range
(Algorithmus-Funktionsobjekt) |
|
|
konstruiert Objekte durch
Default-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Algorithmus-Funktionsobjekt) |
|
|
konstruiert Objekte durch
Wert-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Range
(Algorithmus-Funktionsobjekt) |
|
|
konstruiert Objekte durch
Wert-Initialisierung
in einem nicht initialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Algorithmus-Funktionsobjekt) |
|
|
(C++20)
|
zerstört ein Objekt an einer gegebenen Adresse
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
zerstört einen Bereich von Objekten
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
zerstört eine Anzahl von Objekten in einem Bereich
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
erstellt ein Objekt an einer gegebenen Adresse
(Algorithmus-Funktionsobjekt) |
Explizite Lebensdauerverwaltung (since C++23)
|
Definiert im Header
<memory>
|
|
|
erstellt implizit Objekte im angegebenen Speicher unter Wiederverwendung der Objektrepräsentation
(Funktionstemplate) |
|
Typen für zusammengesetztes Klassendesign (since C++26)
|
Definiert im Header
<memory>
|
|
|
(C++26)
|
Ein Wrapper, der ein dynamisch allokiertes Objekt mit wertähnlicher Semantik enthält
(Klassentemplate) |
|
(C++26)
|
Ein polymorpher Wrapper, der ein dynamisch allokiertes Objekt mit wertähnlicher Semantik enthält
(Klassentemplate) |
Sonstiges
|
Definiert im Header
<memory>
|
|
|
(C++11)
|
stellt Informationen über zeigerähnliche Typen bereit
(Klassentemplate) |
|
(C++20)
|
ermittelt einen Rohzeiger aus einem zeigerähnlichen Typ
(Funktionstemplate) |
|
(C++11)
|
ermittelt die tatsächliche Adresse eines Objekts, selbst wenn der
&
Operator überladen ist
(Funktionstemplate) |
|
(C++11)
|
richtet einen Zeiger in einem Puffer aus
(Funktion) |
|
(C++20)
|
informiert den Compiler, dass ein Zeiger ausgerichtet ist
(Funktionstemplate) |
|
(C++26)
|
prüft, ob der Zeiger auf ein Objekt zeigt, dessen Ausrichtung mindestens den angegebenen Wert hat
(Funktionstemplate) |
Low-Level-Speicherverwaltung
Beinhaltet z.B. operator new , operator delete , std::set_new_handler .
|
Definiert im Header
<new>
|
C-Style-Speicherverwaltung
Beinhaltet z.B. std::malloc , std::free .
|
Definiert im Header
<cstdlib>
|
Nicht initialisierter Speicher (bis C++20)
Mehrere Hilfsprogramme werden bereitgestellt, um Rohspeicher zu erstellen und darauf zuzugreifen.
|
Definiert im Header
<memory>
|
|
|
(deprecated in C++17)
(removed in C++20)
|
Ein Iterator, der Standardalgorithmen ermöglicht, Ergebnisse in nicht initialisierten Speicher zu schreiben
(Klassen-Template) |
|
(deprecated in C++17)
(removed in C++20)
|
Beschafft nicht initialisierten Speicher
(Funktions-Template) |
|
(deprecated in C++17)
(removed in C++20)
|
Gibt nicht initialisierten Speicher frei
(Funktions-Template) |
Garbage Collector-Unterstützung (bis C++23)
|
Definiert im Header
<memory>
|
|
|
(C++11)
(entfernt in C++23)
|
deklariert, dass ein Objekt nicht recycelt werden kann
(Funktion) |
|
(C++11)
(entfernt in C++23)
|
deklariert, dass ein Objekt recycelt werden kann
(Funktions-Template) |
|
(C++11)
(entfernt in C++23)
|
deklariert, dass ein Speicherbereich keine verfolgbaren Zeiger enthält
(Funktion) |
|
(C++11)
(entfernt in C++23)
|
macht den Effekt von
std::declare_no_pointers
rückgängig
(Funktion) |
|
(C++11)
(entfernt in C++23)
|
listet Zeiger-Sicherheitsmodelle auf
(Enumeration) |
|
(C++11)
(entfernt in C++23)
|
gibt das aktuelle Zeiger-Sicherheitsmodell zurück
(Funktion) |