Dynamische Speicherverwaltung
Intelligente Zeiger
Intelligente Zeiger ermglichen automatische, ausnahmensichere Ressourcenverwaltung.
definiert in Header
<memory> | |
Zeigerkategorien | |
(C++11) |
intelligenter Zeiger, der exklusiven Objektbesitz abbildet (Klassen-Template) |
(C++11) |
intelligenter Zeiger, der geteilten Objektbesitz abbildet (Klassen-Template) |
(C++11) |
intelligenter Zeiger, der eine schwache, d.h. nicht blockierende, Referenz auf einen std::shared_ptr verwaltet (Klassen-Template) |
(veraltet) |
Zeiger, der exklusiven Objektbesitz abbildet (Klassen-Template) |
Hilfsklassen | |
(C++11) |
bietet eine Ordnung anhand der Eigentmer fr gemischte Mengen aus shared_ptr und weak_ptr an (Klassen-Template) |
(C++11) |
ermglicht einem Objekt einen shared_ptr auf sich selbst zu erstellen (Klassen-Template) |
(C++11) |
Ausnahme beim versuchten Zugriffs auf einen weak_ptr, der auf ein schon zerstrtes Objekt verweist (Klasse) |
(C++11) |
die voreingestellte Lschfunktion fr unique_ptr (Klassen-Template) |
Adaptoren fr intelligente Zeiger | |
(C++23) |
arbeitet mit externen Setzern eines Zeigers zusammen und setzt einen intelligenten Zeiger beim Zerstren zurck. (Klassen-Template) |
(C++23) |
erzeugt einen out_ptr_t mit dem zugehrigen intelligenten Zeiger und Argumente zum Zurcksetzen (Funktions-Template) |
(C++23) |
arbeitet mit externen Setzern von Zeigern zusammen, bekommt den initialen Zeigerwert aus einem intelligenten Zeiger und setzt ihn beim Zerstren zurck. (Klassen-Template) |
(C++23) |
erzeugt ein inout_ptr_t mit einem zugehrigen intelligenten Zeiger und Argument zum Zurcksetzen (Funktions-Template) |
Allokatoren
Allokatoren sind Klassen-Templates, die die Strategien der Speicherverwaltung kapseln. Dadurch sind generischen Containern in der Lage, die Speicherverwaltung und die Verwaltung der Daten selbst zu entkoppeln.
definiert in Header
<memory> | |
| der Standardallokator (Klassen-Template) | |
(C++11) |
liefert Informationen ber Allokatoren (Klassen-Template) |
(C++23) |
speichert die Adresse und die wirkliche Gre des durch allocate_at_least belegten Speichers (Klassen-Template) |
(C++23) |
belegt mindestens so viel Speicher wie vom Allokator angefordert (Funktions-Template) |
(C++11) |
Type zur Auswahl der Konstruktorberladungen mit Allokatoruntersttzung (Klasse) |
(C++11) |
eine Konstante, um Konstruktoren, die Allokatoren untersttzen, auswhlen zu knnen (konstanten) |
(C++11) |
prft, ob der angegebene Typ allokatorgesttzte Erzeugung untersttzt. (Klassen-Template) |
| erzeugt die passende Argumentenliste fr die Art der Allokatorkonstruktion, wie sie vom gegebenen Type bentigt wird. (Funktions-Template) | |
(C++20) |
erzeugt ein Objekt des gegebenen Typs durch Benutzung des gegebenen Allokators (Funktions-Template) |
| erzeugt ein Objekt mit dem vorgegebenen Typ an der vorgegebenen Speicheradresse unter Benutzung des gegebenen Allokators (Funktions-Template) | |
definiert in Header
<scoped_allocator> | |
(C++11) |
implementiert die Zuweisung ber mehrere Ebenen fr Container, die in mehrfachen Ebene unterteilt sind (Klassen-Template) |
definiert in Header
<memory_resource> | |
definiert in Namensraum
std::pmr | |
(C++17) |
ein Allokator, der Laufzeitpolymorphie basierend auf der Speicherresource, die zur Konstruktion benutzt worden ist, untersttzt. (Klassen-Template) |
Speicherressourcen
Speicherressourcen implementieren Speicheranforderungsstrategien, die von std::pmr::polymorphic_allocator benutzt werden knnen.
definiert in Header
<memory_resource> | |
definiert in Namensraum
std::pmr | |
(C++17) |
eine abstrakte Interfaceklasse, die Speicherressourcen kapselt (Klasse) |
(C++17) |
gibt eine statische, fr das ganze Program gleiche, Speicherressource (std::pmr::memory_resource) zurck, die den globalen operator new und operator delete zum Allokieren und Freigeben von Speicher verwendet. (Funktion) |
(C++17) |
gibt eine statische Speicherressource (std::pmr::memory_resource) zurck, die keinerlei Allokation vornimmt. (Funktion) |
(C++17) |
gibt die voreingestellten Speicherressource std::pmr::memory_resource (Funktion) |
(C++17) |
setzen der voreingestellten Speicherressource (std::pmr::memory_resource) (Funktion) |
(C++17) |
ein Satz an Konstruktoroptionen fr Poolressourcen (Klasse) |
(C++17) |
eine zugriffsverwaltete Speicherressource (std::pmr::memory_resource) zur Verwaltung von Allokation in Speicherpools mit verschiedenen Blockgren (Klasse) |
(C++17) |
eine Speicherressource (std::pmr::memory_resource) fr die Verwaltung von Allokationen in Speicherpools mit verschieden groen Speicherblcken. (Klasse) |
(C++17) |
eine spezielle Speicherressource (std::pmr::memory_resource), die den Speicher erst frei gibt, wenn sie zerstrt wird. (Klasse) |
Nichtinitialisierter Speicher
Es werden einige Hilfsfunktionen zur Verfgung gestellt, die das Erzeugen und den Zugriff auf nichtinitialisierten Speicher ermglichen.
definiert in Header
<memory> | |
| ein Iterator, der es Standardalgorithmen erlaubt, Ergebnisse in nicht initialisierten Speicher zu speichern (Klassen-Template) | |
| gibt nicht initialisierten, temporren Speicher fr die angegebene Zahl von Elementen zurck (Funktions-Template) | |
gibt den nicht initialisierten, temporren Speicher (get_temporary_buffer) frei (Funktions-Template) | |
Algorithmen auf nichtinitialisiertem Speicher
definiert in Header
<memory> | |
| kopiert eine Folge von Objekten in einen nicht initialisierten Bereich des Speichers (Funktions-Template) | |
(C++11) |
kopiert eine Folge von n Objekten in einen nicht initialisierten Bereich des Speichers (Funktions-Template) |
| fllt den nicht initialisierten Speicher mit Kopien eines Objektes (Funktions-Template) | |
| fllt den nicht initialisierten Speicher mit n Kopien eines Objektes (Funktions-Template) | |
(C++17) |
verschiebt eine Folge von Objekten in nicht initialisierten Speicher (Funktions-Template) |
(C++17) |
verschiebt eine Folge von n Objekten in nicht initialisierten Speicher (Funktions-Template) |
| erzeugt eine Folge von Objekten durch default-initialization in nicht initialisierten Speicherbereich (Funktions-Template) | |
| erzeugt eine Folge von n Objekten durch default-initialization in nicht initialisierten Speicher mit gegebener Adresse (Funktions-Template) | |
| erzeugt eine Folge von Objekten durch value-initialization in nicht initialisierten Speicherbereich (Funktions-Template) | |
| erzeugt eine Anzahl n von Objekten durch value-initialization in nicht initialisierten Speicher mit gegebener Adresse (Funktions-Template) | |
(C++17) |
zerstrt ein Objekt an der gegebenen Adresse (Funktions-Template) |
(C++17) |
zerstrt eine Folge von Objekten (Funktions-Template) |
(C++17) |
zerstrt eine Folge von n Objekten (Funktions-Template) |
(C++20) |
erzeugt ein Objekt an der angegebenen Adresse (Funktions-Template) |
Bedingte Algorithmen auf nichtinitialisiertem Speicher (C++20)
C++20 bietet bedingte Algorithmen auf nicht-initialisiertem Speicher, die Bereiche oder Iterator-Sentinel Paare als Argumente akzeptieren.
definiert in Header
<memory> | |
definiert in Namensraum
std::ranges | |
| spezifiziert, da einige Operationen fr Iteratoren, Sentinels and Folgen keine Ausnahmen werfen. (exposition-only concept) | |
(C++20) |
kopiert eine Folge von Objekten in nicht initialisierten Speicher (niebloid) |
(C++20) |
kopiert eine Folge von n Objekten in nicht initialisierten Speicher (niebloid) |
(C++20) |
fllt einen nicht initialisierten Speicherbereich durch Kopien eines Objektes auf (niebloid) |
(C++20) |
fllt nicht initialisierten Speicher durch eine Folge von n Kopien eines Objektes (niebloid) |
(C++20) |
verschiebt eine Folge von Objektren in nicht initialisierten Speicher (niebloid) |
(C++20) |
verschiebt eine Folge n Objekten in nicht initialisierten Speicher (niebloid) |
| erzeugt eine Folge von Objekten durch default-initialization in nicht initialisierten Speicherbereich (niebloid) | |
| erzeugt eine Folge von n Objekten durch default-initialization in nicht initialisierten Speicher mit gegebener Adresse (niebloid) | |
| erzeugt eine Folge von Objekten durch value-initialization in nicht initialisierten Speicherbereich (niebloid) | |
| erzeugt eine Folge von n Objekten durch value-initialization in nicht initialisierten Speicher mit gegebener Adresse (niebloid) | |
(C++20) |
zerstrt ein Objekt an der angegebenen Adresse (niebloid) |
(C++20) |
zerstrt eine Folge von Objekten (niebloid) |
(C++20) |
zerstrt eine Folge von n Objekten (niebloid) |
(C++20) |
erzeugt ein Objekt an der angegebenen Adresse (niebloid) |
Untersttzung fr Garbage Collectors
definiert in Header
<memory> | |
(C++11) |
erklrt, da ein Objekt nicht recycelt werden kann (Funktion) |
(C++11) |
gibt an, dass ein Objekt wiederverwertet werden kann (Funktions-Template) |
(C++11) |
gibt an, da ein Speicherbereich keine rckfhrbaren Zeigern enthlt (Funktion) |
(C++11) |
hebt die Wirkung von std::declare_no_pointers auf (Funktion) |
(C++11) |
listet die Sicherheitsmodelle von Zeigern auf (Klasse) |
(C++11) |
liefert den Zeiger auf das aktuelle Sicherheitsmodell (Funktion) |
Verschiedenes
definiert in Header
<memory> | |
(C++11) |
liefert Informationen ber zeigerhnliche Typen (Klassen-Template) |
(C++20) |
erzeugt einen nativen Zeiger aus einem Type, der sich wie ein Zeiger verhlt (Funktions-Template) |
(C++11) |
ermittelt die tatschlichen Adresse eines Objekts, selbst wenn der Dereferenzierungsoperator berladen ist (Funktions-Template) |
(C++11) |
richtet einen Zeiger in einem Puffer aus (Funktion) |
(C++20) |
zeigt dem Kompiler an, da ein Zeiger ausgerichtet ist. (Funktions-Template) |
Low level memory management
Enthlt beispielsweise operator new, operator delete, std::set_new_handler
Speicherverwaltung im C-Stil
Enthlt beispielsweise std::malloc, std::free
Maschinennahe Speicherverwaltung
Enthlt beispielsweise operator new , operator delete , std::set_new_handler