Speicherverwaltungsbibliothek
Von cppreference.com
< cpp
[edit] Intelligente Zeiger (seit C++11)
Intelligente Zeiger ermöglichen eine automatische, ausnahme-sichere Verwaltung der Objektlebensdauer.
| Definiert in Header
<memory> | |
Zeiger-Kategorien | |
| (C++11) |
intelligenter Zeiger mit semantisch eindeutigem Objektbesitz (Klassen-Template) |
| (C++11) |
intelligenter Zeiger mit semantisch geteiltem Objektbesitz (Klassen-Template) |
| (C++11) |
schwache Referenz auf ein von std::shared_ptr verwaltetes Objekt (Klassen-Template) |
| (in C++11 veraltet)(in C++17 entfernt) |
intelligenter Zeiger mit streng semantischem Objektbesitz (Klassen-Template) |
Hilfsklassen | |
| (C++11) |
ermöglicht gemischttypige, besitzerbasierte Ordnung von Shared- und Weak-Zeigern (Klassen-Template) |
| (C++26) |
ermöglicht besitzerbasierte Hash-Funktionen für Shared- und Weak-Zeiger (Klasse) |
| (C++26) |
ermöglicht gemischttypige, besitzerbasierte Gleichheitsvergleiche von Shared- und Weak-Zeigern (Klasse) |
| (C++11) |
ermöglicht einem Objekt, einen auf sich selbst verweisenden shared_ptr zu erstellen(Klassen-Template) |
| (C++11) |
wird ausgelöst, wenn beim Zugriff auf einen weak_ptr auf ein bereits zerstörtes Objekt zugegriffen wird(Klasse) |
| (C++11) |
Standard-Deleter für unique_ptr (Klassen-Template) |
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) |
| (C++23) |
erstellt einen out_ptr_t mit einem zugehörigen intelligenten Zeiger und Zurücksetzungsargumenten(Funktions-Template) |
| (C++23) |
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) |
| (C++23) |
erstellt einen inout_ptr_t mit einem zugehörigen intelligenten Zeiger und Zurücksetzungsargumenten(Funktions-Template) |
[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) | |
| (C++11) |
liefert Informationen über Allocator-Typen (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, der zur Auswahl von Allocator-bewussten Konstruktoren verwendet wird (Tag) |
| (C++11) |
prüft, ob der angegebene Typ Uses-Allocator-Konstruktion unterstützt (Klassen-Template) |
| bereitet die Argumentliste vor, die dem für den gegebenen Typ erforderlichen Uses-Allocator-Konstruktions-Flavor entspricht (Funktions-Template) | |
| (C++20) |
erstellt ein Objekt des gegebenen Typs mittels Uses-Allocator-Konstruktion (Funktions-Template) |
| erstellt ein Objekt des gegebenen Typs an einer angegebenen Speicherstelle mittels Uses-Allocator-Konstruktion (Funktions-Template) | |
| Definiert in Header
<scoped_allocator> | |
| (C++11) |
implementiert mehrstufige Allokatoren für mehrstufige Container (Klassen-Template) |
| Definiert in Header
<memory_resource> | |
| Definiert im Namespace
std::pmr | |
| (C++17) |
ein Allocator, der Laufzeitpolymorphismus basierend auf der std::pmr::memory_resource unterstützt, mit der er konstruiert wird (Klassen-Template) |
[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 | |
| (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 die globalen operator new und operator delete zur Allokation und Freigabe von Speicher 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 Sammlung von Konstruktoroptionen für Pool-Ressourcen (Klasse) |
| (C++17) |
eine Thread-sichere std::pmr::memory_resource zur Verwaltung von Allokationen in Pools unterschiedlicher Blockgrößen (Klasse) |
| (C++17) |
eine Thread-unsichere std::pmr::memory_resource zur Verwaltung von Allokationen in Pools unterschiedlicher Blockgrößen (Klasse) |
| (C++17) |
eine Spezialzweck-std::pmr::memory_resource, die den allokierten Speicher erst bei Zerstörung der Ressource freigibt (Klasse) |
[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) |
| (veraltet in C++17)(entfernt in C++20) |
ermöglicht den Zugriff auf uninitialisierten Speicher (Funktions-Template) |
| (veraltet in C++17)(entfernt in C++20) |
gibt uninitialisierten Speicher frei (Funktions-Template) |
[edit] Algorithmen für uninitialisierten Speicher
| Definiert in Header
<memory> | |
| kopiert einen Bereich von Objekten in einen uninitialisierten Speicherbereich (Funktions-Template) | |
| (C++11) |
kopiert eine Anzahl von Objekten in einen uninitialisierten Speicherbereich (Funktions-Template) |
| kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Bereich (Funktions-Template) | |
| kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl (Funktions-Template) | |
| (C++17) |
verschiebt einen Bereich von Objekten in einen uninitialisierten Speicherbereich (Funktions-Template) |
| (C++17) |
verschiebt eine Anzahl von Objekten in einen uninitialisierten Speicherbereich (Funktions-Template) |
| konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich (Funktions-Template) | |
| konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl (Funktions-Template) | |
| konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich (Funktions-Template) | |
| konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten 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 einen Bereich 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) |
[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*) | |
| (C++20) |
kopiert einen Bereich von Objekten in einen uninitialisierten Speicherbereich (Algorithmus-Funktionsobjekt) |
| (C++20) |
kopiert eine Anzahl von Objekten in einen uninitialisierten Speicherbereich (Algorithmus-Funktionsobjekt) |
| (C++20) |
kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Bereich (Algorithmus-Funktionsobjekt) |
| (C++20) |
kopiert ein Objekt in einen uninitialisierten Speicherbereich, definiert durch einen Start und eine Anzahl (Algorithmus-Funktionsobjekt) |
| (C++20) |
verschiebt einen Bereich von Objekten in einen uninitialisierten Speicherbereich (Algorithmus-Funktionsobjekt) |
| (C++20) |
verschiebt eine Anzahl von Objekten in einen uninitialisierten Speicherbereich (Algorithmus-Funktionsobjekt) |
| konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich (Algorithmus-Funktionsobjekt) | |
| konstruiert Objekte mittels Standardinitialisierung in einem uninitialisierten Speicherbereich, definiert durch Start und Anzahl (Algorithmus-Funktionsobjekt) | |
| konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten Speicherbereich, definiert durch einen Bereich (Algorithmus-Funktionsobjekt) | |
| konstruiert Objekte mittels Wertinitialisierung in einem uninitialisierten 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) |
[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) |
| (C++11)(entfernt in C++23) |
deklariert, dass ein Objekt wiederverwendet werden kann (Funktions-Template) |
| (C++11)(entfernt in C++23) |
deklariert, dass ein Speicherbereich keine nachverfolgbaren Zeiger enthält (Funktion) |
| (C++11)(entfernt in C++23) |
hebt die Auswirkung von std::declare_no_pointers auf (Funktion) |
| (C++11)(entfernt in C++23) |
listet Zeigersicherheitsmodelle auf (Enum) |
| (C++11)(entfernt in C++23) |
gibt das aktuelle Zeigersicherheitsmodell zurück (Funktion) |
[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] Sonstiges
| Definiert in Header
<memory> | |
| (C++11) |
liefert Informationen über zeigerähnliche Typen (Klassen-Template) |
| (C++20) |
ermöglicht den Zugriff auf einen Rohzeiger von einem zeigerähnlichen Typ (Funktions-Template) |
| (C++11) |
ermöglicht den Zugriff auf die tatsächliche Adresse eines Objekts, auch wenn der &-Operator überladen ist(Funktions-Template) |
| (C++11) |
richtet einen Zeiger in einem Puffer aus (Funktion) |
| (C++20) |
informiert den Compiler, dass ein Zeiger ausgerichtet ist (Funktions-Template) |
| (C++26) |
prüft, ob der Zeiger auf ein Objekt zeigt, dessen Ausrichtung mindestens dem gegebenen Wert entspricht (Funktions-Template) |
[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> |