Namensräume
Varianten
Aktionen

Speicherverwaltungsbibliothek

Von cppreference.com
< cpp
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 

Inhalt

[edit] Intelligente Zeiger (seit C++11)

Intelligente Zeiger ermöglichen eine automatische, ausnahme-sichere Verwaltung der Objektlebensdauer.

Definiert in Header <memory>
Zeiger-Kategorien
intelligenter Zeiger mit semantisch eindeutigem Objektbesitz
(Klassen-Template) [edit]
intelligenter Zeiger mit semantisch geteiltem Objektbesitz
(Klassen-Template) [edit]
(C++11)
schwache Referenz auf ein von std::shared_ptr verwaltetes Objekt
(Klassen-Template) [edit]
(in C++11 veraltet)(in C++17 entfernt)
intelligenter Zeiger mit streng semantischem Objektbesitz
(Klassen-Template) [edit]
Hilfsklassen
ermöglicht gemischttypige, besitzerbasierte Ordnung von Shared- und Weak-Zeigern
(Klassen-Template) [edit]
ermöglicht besitzerbasierte Hash-Funktionen für Shared- und Weak-Zeiger
(Klasse) [edit]
ermöglicht gemischttypige, besitzerbasierte Gleichheitsvergleiche von Shared- und Weak-Zeigern
(Klasse) [edit]
ermöglicht einem Objekt, einen auf sich selbst verweisenden shared_ptr zu erstellen
(Klassen-Template) [edit]
wird ausgelöst, wenn beim Zugriff auf einen weak_ptr auf ein bereits zerstörtes Objekt zugegriffen wird
(Klasse) [edit]
Standard-Deleter für unique_ptr
(Klassen-Template) [edit]
Adapter für intelligente Zeiger (seit C++23)
(C++23)
interagiert mit externen Zeiger-Setzern und setzt einen intelligenten Zeiger bei der Zerstörung zurück
(Klassen-Template) [edit]
(C++23)
erstellt einen out_ptr_t mit einem zugehörigen intelligenten Zeiger und Zurücksetzungsargumenten
(Funktions-Template) [edit]
interagiert mit externen Zeiger-Setzern, ermittelt den anfänglichen Zeigerwert aus einem intelligenten Zeiger und setzt ihn bei der Zerstörung zurück
(Klassen-Template) [edit]
(C++23)
erstellt einen inout_ptr_t mit einem zugehörigen intelligenten Zeiger und Zurücksetzungsargumenten
(Funktions-Template) [edit]

[edit] Allokatoren

Allokatoren sind Klassen-Templates, die Strategien zur Speicherallokation kapseln. Dies ermöglicht generischen Containern, die Speicherverwaltung von den Daten selbst zu entkoppeln.

Definiert in Header <memory>
der Standard-Allocator
(Klassen-Template) [edit]
liefert Informationen über Allocator-Typen
(Klassen-Template) [edit]
speichert die Adresse und die tatsächliche Größe des von allocate_at_least allokierten Speichers
(Klassen-Template) [edit]
ein Tag, der zur Auswahl von Allocator-bewussten Konstruktoren verwendet wird
(Tag)[edit]
prüft, ob der angegebene Typ Uses-Allocator-Konstruktion unterstützt
(Klassen-Template) [edit]
bereitet die Argumentliste vor, die dem für den gegebenen Typ erforderlichen Uses-Allocator-Konstruktions-Flavor entspricht
(Funktions-Template) [edit]
erstellt ein Objekt des gegebenen Typs mittels Uses-Allocator-Konstruktion
(Funktions-Template) [edit]
erstellt ein Objekt des gegebenen Typs an einer angegebenen Speicherstelle mittels Uses-Allocator-Konstruktion
(Funktions-Template) [edit]
Definiert in Header <scoped_allocator>
implementiert mehrstufige Allokatoren für mehrstufige Container
(Klassen-Template) [edit]
Definiert in Header <memory_resource>
Definiert im Namespace std::pmr
ein Allocator, der Laufzeitpolymorphismus basierend auf der std::pmr::memory_resource unterstützt, mit der er konstruiert wird
(Klassen-Template) [edit]

[edit] Speicherressourcen (seit C++17)

Speicherressourcen implementieren Speicherallokationsstrategien, die von std::pmr::polymorphic_allocator verwendet werden können.

Definiert in Header <memory_resource>
Definiert im Namespace std::pmr
eine abstrakte Schnittstelle für Klassen, die Speicherressourcen kapseln
(Klasse) [edit]
gibt eine statische, programmweite std::pmr::memory_resource zurück, die die globalen operator new und operator delete zur Allokation und Freigabe von Speicher verwendet
(Funktion) [edit]
gibt eine statische std::pmr::memory_resource zurück, die keine Allokation durchführt
(Funktion) [edit]
ruft die Standard-std::pmr::memory_resource ab
(Funktion) [edit]
setzt die Standard-std::pmr::memory_resource
(Funktion) [edit]
eine Sammlung von Konstruktoroptionen für Pool-Ressourcen
(Klasse) [edit]
eine Thread-sichere std::pmr::memory_resource zur Verwaltung von Allokationen in Pools unterschiedlicher Blockgrößen
(Klasse) [edit]
eine Thread-unsichere std::pmr::memory_resource zur Verwaltung von Allokationen in Pools unterschiedlicher Blockgrößen
(Klasse) [edit]
eine Spezialzweck-std::pmr::memory_resource, die den allokierten Speicher erst bei Zerstörung der Ressource freigibt
(Klasse) [edit]

[edit] Uninitialisierter Speicher (bis C++17)

Es werden mehrere Hilfsmittel zur Erstellung und zum Zugriff auf Rohspeicher bereitgestellt.

Definiert in Header <memory>
(veraltet in C++17)(entfernt in C++20)
ein Iterator, der es Standardalgorithmen ermöglicht, Ergebnisse in uninitialisiertem Speicher zu speichern
(Klassen-Template) [edit]
(veraltet in C++17)(entfernt in C++20)
ermöglicht den Zugriff auf uninitialisierten Speicher
(Funktions-Template) [edit]
(veraltet in C++17)(entfernt in C++20)
gibt uninitialisierten Speicher frei
(Funktions-Template) [edit]

[edit] Algorithmen für uninitialisierten Speicher

Definiert in Header <memory>
kopiert einen Bereich von Objekten in einen uninitialisierten Speicherbereich
(Funktions-Template) [edit]
kopiert eine Anzahl von Objekten in einen uninitialisierten Speicherbereich
(Funktions-Template) [edit]
kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template) [edit]
kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Funktions-Template) [edit]
verschiebt einen Bereich von Objekten in einen uninitialisierten Speicherbereich
(Funktions-Template) [edit]
verschiebt eine Anzahl von Objekten in einen uninitialisierten Speicherbereich
(Funktions-Template) [edit]
konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template) [edit]
konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Funktions-Template) [edit]
konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich
(Funktions-Template) [edit]
konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Funktions-Template) [edit]
zerstört ein Objekt an einer gegebenen Adresse
(Funktions-Template) [edit]
(C++17)
zerstört einen Bereich von Objekten
(Funktions-Template) [edit]
(C++17)
zerstört eine Anzahl von Objekten in einem Bereich
(Funktions-Template) [edit]
erstellt ein Objekt an einer gegebenen Adresse
(Funktions-Template) [edit]

[edit] Eingeschränkte Algorithmen für uninitialisierten Speicher (seit C++20)

C++20 bietet eingeschränkte Algorithmen für uninitialisierten Speicher, die Bereichsargumente oder Iterator-Sentinel-Paare akzeptieren.

Definiert in Header <memory>
Definiert im Namespace std::ranges
spezifiziert, dass einige Operationen auf Iteratoren, Sentinels und Bereichen nicht werfen
(Exposition-only-Konzept*)
kopiert einen Bereich von Objekten in einen uninitialisierten Speicherbereich
(Algorithmus-Funktionsobjekt)[edit]
kopiert eine Anzahl von Objekten in einen uninitialisierten Speicherbereich
(Algorithmus-Funktionsobjekt)[edit]
kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Bereich
(Algorithmus-Funktionsobjekt)[edit]
kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Algorithmus-Funktionsobjekt)[edit]
verschiebt einen Bereich von Objekten in einen uninitialisierten Speicherbereich
(Algorithmus-Funktionsobjekt)[edit]
verschiebt eine Anzahl von Objekten in einen uninitialisierten Speicherbereich
(Algorithmus-Funktionsobjekt)[edit]
konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich
(Algorithmus-Funktionsobjekt)[edit]
konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch Start und Anzahl
(Algorithmus-Funktionsobjekt)[edit]
konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich
(Algorithmus-Funktionsobjekt)[edit]
konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl
(Algorithmus-Funktionsobjekt)[edit]
zerstört ein Objekt an einer gegebenen Adresse
(Algorithmus-Funktionsobjekt)[edit]
zerstört einen Bereich von Objekten
(Algorithmus-Funktionsobjekt)[edit]
zerstört eine Anzahl von Objekten in einem Bereich
(Algorithmus-Funktionsobjekt)[edit]
erstellt ein Objekt an einer gegebenen Adresse
(Algorithmus-Funktionsobjekt)[edit]

[edit] Unterstützung für Garbage Collector (bis C++23)

Definiert in Header <memory>
(C++11)(entfernt in C++23)
deklariert, dass ein Objekt nicht wiederverwendet werden kann
(Funktion) [edit]
(C++11)(entfernt in C++23)
deklariert, dass ein Objekt wiederverwendet werden kann
(Funktions-Template) [edit]
(C++11)(entfernt in C++23)
deklariert, dass ein Speicherbereich keine nachverfolgbaren Zeiger enthält
(Funktion) [edit]
(C++11)(entfernt in C++23)
hebt die Auswirkung von std::declare_no_pointers auf
(Funktion) [edit]
(C++11)(entfernt in C++23)
listet Zeigersicherheitsmodelle auf
(Enum) [edit]
(C++11)(entfernt in C++23)
gibt das aktuelle Zeigersicherheitsmodell zurück
(Funktion) [edit]

[edit] Explizite Lebensdauerverwaltung (seit C++23)

Definiert in Header <memory>
erstellt implizit Objekte in gegebenem Speicher, wobei die Objekt-Repräsentation wiederverwendet wird
(Funktions-Template) [edit]

[edit] Sonstiges

Definiert in Header <memory>
liefert Informationen über zeigerähnliche Typen
(Klassen-Template) [edit]
ermöglicht den Zugriff auf einen Rohzeiger von einem zeigerähnlichen Typ
(Funktions-Template) [edit]
(C++11)
ermöglicht den Zugriff auf die tatsächliche Adresse eines Objekts, auch wenn der &-Operator überladen ist
(Funktions-Template) [edit]
(C++11)
richtet einen Zeiger in einem Puffer aus
(Funktion) [edit]
informiert den Compiler, dass ein Zeiger ausgerichtet ist
(Funktions-Template) [edit]
prüft, ob der Zeiger auf ein Objekt zeigt, dessen Ausrichtung mindestens dem gegebenen Wert entspricht
(Funktions-Template) [edit]

[edit] Niedrigstufige Speicherverwaltung

Enthält z. B. operator new, operator delete, std::set_new_handler.

Definiert im Header <new>

[edit] C-artige Speicherverwaltung

Enthält z. B. std::malloc, std::free.

Definiert in Header <cstdlib>