Namensräume
Varianten
Aktionen

Dynamische Speicherverwaltung

Aus cppreference.com
< cpp
 
 
 
Dynamische Speicherverwaltung
Low-Level-Speicherverwaltung
Zuweiser
Original:
Allocators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
allocator
allocator_traits(C++11)
allocator_arg_t(C++11)
allocator_arg(C++11)
uses_allocator(C++11)
scoped_allocator_adaptor(C++11)
Initialisierter Speicher
Original:
Uninitialized storage
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
uninitialized_copy
uninitialized_copy_n(C++11)
uninitialized_fill
uninitialized_fill_n
raw_storage_iterator
get_temporary_buffer
return_temporary_buffer
Intelligente Zeiger
Original:
Smart pointers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
unique_ptr(C++11)
shared_ptr(C++11)
weak_ptr(C++11)
auto_ptr(veraltet)
owner_less(C++11)
enable_shared_from_this(C++11)
bad_weak_ptr(C++11)
default_delete(C++11)
Garbage Collection Unterstützung
Original:
Garbage collection support
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
declare_reachable(C++11)
undeclare_reachable(C++11)
declare_no_pointers(C++11)
undeclare_no_pointers(C++11)
pointer_safety(C++11)
get_pointer_safety(C++11)
Verschiedenes
Original:
Miscellaneous
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
pointer_traits(C++11)
addressof(C++11)
align(C++11)
C-Bibliothek
Original:
C Library
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 

Inhaltsverzeichnis

[Bearbeiten] Intelligente Zeiger

Intelligente Zeiger ermöglichen automatische, ausnahmensichere Ressourcenverwaltung.

definiert in Header <memory>
Zeigerkategorien
intelligenter Zeiger, der exklusiven Objektbesitz abbildet
(Klassen-Template) [edit]
intelligenter Zeiger, der geteilten Objektbesitz abbildet
(Klassen-Template) [edit]
(C++11)
intelligenter Zeiger, der eine schwache, d.h. nicht blockierende, Referenz auf einen std::shared_ptr verwaltet
(Klassen-Template) [edit]
(veraltet)
Zeiger, der exklusiven Objektbesitz abbildet
(Klassen-Template) [edit]
Hilfsklassen
bietet eine Ordnung anhand der Eigentümer für gemischte Mengen aus shared_ptr und weak_ptr an
(Klassen-Template) [edit]
ermöglicht einem Objekt einen shared_ptr auf sich selbst zu erstellen
(Klassen-Template) [edit]
Ausnahme beim versuchten Zugriffs auf einen weak_ptr, der auf ein schon zerstörtes Objekt verweist
(Klasse) [edit]
die voreingestellte Löschfunktion für unique_ptr
(Klassen-Template) [edit]
Adaptoren für intelligente Zeiger
(C++23)
arbeitet mit externen Setzern eines Zeigers zusammen und setzt einen intelligenten Zeiger beim Zerstören zurück.
(Klassen-Template) [edit]
(C++23)
erzeugt einen out_ptr_t mit dem zugehörigen intelligenten Zeiger und Argumente zum Zurücksetzen
(Funktions-Template) [edit]
arbeitet mit externen Setzern von Zeigern zusammen, bekommt den initialen Zeigerwert aus einem intelligenten Zeiger und setzt ihn beim Zerstören zurück.
(Klassen-Template) [edit]
(C++23)
erzeugt ein inout_ptr_t mit einem zugehörigen intelligenten Zeiger und Argument zum Zurücksetzen
(Funktions-Template) [edit]

[Bearbeiten] 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) [edit]
liefert Informationen über Allokatoren
(Klassen-Template) [edit]
speichert die Adresse und die wirkliche Größe des durch allocate_at_least belegten Speichers
(Klassen-Template) [edit]
belegt mindestens so viel Speicher wie vom Allokator angefordert
(Funktions-Template) [edit]
Type zur Auswahl der Konstruktorüberladungen mit Allokatorunterstützung
(Klasse) [edit]
eine Konstante, um Konstruktoren, die Allokatoren unterstützen, auswählen zu können
(konstanten) [edit]
prüft, ob der angegebene Typ allokatorgestützte Erzeugung unterstützt.
(Klassen-Template) [edit]
erzeugt die passende Argumentenliste für die Art der Allokatorkonstruktion, wie sie vom gegebenen Type benötigt wird.
(Funktions-Template) [edit]
erzeugt ein Objekt des gegebenen Typs durch Benutzung des gegebenen Allokators
(Funktions-Template) [edit]
erzeugt ein Objekt mit dem vorgegebenen Typ an der vorgegebenen Speicheradresse unter Benutzung des gegebenen Allokators
(Funktions-Template) [edit]
definiert in Header <scoped_allocator>
implementiert die Zuweisung über mehrere Ebenen für Container, die in mehrfachen Ebene unterteilt sind
(Klassen-Template) [edit]
definiert in Header <memory_resource>
definiert in Namensraum std::pmr
ein Allokator, der Laufzeitpolymorphie basierend auf der Speicherresource, die zur Konstruktion benutzt worden ist, unterstützt.
(Klassen-Template) [edit]

[Bearbeiten] Speicherressourcen

Speicherressourcen implementieren Speicheranforderungsstrategien, die von std::pmr::polymorphic_allocator benutzt werden können.

definiert in Header <memory_resource>
definiert in Namensraum std::pmr
eine abstrakte Interfaceklasse, die Speicherressourcen kapselt
(Klasse) [edit]
gibt eine statische, für das ganze Program gleiche, Speicherressource (std::pmr::memory_resource) zurück, die den globalen operator new und operator delete zum Allokieren und Freigeben von Speicher verwendet.
(Funktion) [edit]
gibt eine statische Speicherressource (std::pmr::memory_resource) zurück, die keinerlei Allokation vornimmt.
(Funktion) [edit]
gibt die voreingestellten Speicherressource std::pmr::memory_resource
(Funktion) [edit]
setzen der voreingestellten Speicherressource (std::pmr::memory_resource)
(Funktion) [edit]
ein Satz an Konstruktoroptionen für Poolressourcen
(Klasse) [edit]
eine zugriffsverwaltete Speicherressource (std::pmr::memory_resource) zur Verwaltung von Allokation in Speicherpools mit verschiedenen Blockgrößen
(Klasse) [edit]
eine Speicherressource (std::pmr::memory_resource) für die Verwaltung von Allokationen in Speicherpools mit verschieden großen Speicherblöcken.
(Klasse) [edit]
eine spezielle Speicherressource (std::pmr::memory_resource), die den Speicher erst frei gibt, wenn sie zerstört wird.
(Klasse) [edit]

[Bearbeiten] Nichtinitialisierter Speicher

Es werden einige Hilfsfunktionen zur Verfügung gestellt, die das Erzeugen und den Zugriff auf nichtinitialisierten Speicher ermöglichen.

definiert in Header <memory>
ein Iterator, der es Standardalgorithmen erlaubt, Ergebnisse in nicht initialisierten Speicher zu speichern
(Klassen-Template) [edit]
gibt nicht initialisierten, temporären Speicher für die angegebene Zahl von Elementen zurück
(Funktions-Template) [edit]
gibt den nicht initialisierten, temporären Speicher (get_temporary_buffer) frei
(Funktions-Template) [edit]

[Bearbeiten] Algorithmen auf nichtinitialisiertem Speicher

definiert in Header <memory>
kopiert eine Folge von Objekten in einen nicht initialisierten Bereich des Speichers
(Funktions-Template) [edit]
kopiert eine Folge von n Objekten in einen nicht initialisierten Bereich des Speichers
(Funktions-Template) [edit]
füllt den nicht initialisierten Speicher mit Kopien eines Objektes
(Funktions-Template) [edit]
füllt den nicht initialisierten Speicher mit n Kopien eines Objektes
(Funktions-Template) [edit]
verschiebt eine Folge von Objekten in nicht initialisierten Speicher
(Funktions-Template) [edit]
verschiebt eine Folge von n Objekten in nicht initialisierten Speicher
(Funktions-Template) [edit]
erzeugt eine Folge von Objekten durch default-initialization in nicht initialisierten Speicherbereich
(Funktions-Template) [edit]
erzeugt eine Folge von n Objekten durch default-initialization in nicht initialisierten Speicher mit gegebener Adresse
(Funktions-Template) [edit]
erzeugt eine Folge von Objekten durch value-initialization in nicht initialisierten Speicherbereich
(Funktions-Template) [edit]
erzeugt eine Anzahl n von Objekten durch value-initialization in nicht initialisierten Speicher mit gegebener Adresse
(Funktions-Template) [edit]
zerstört ein Objekt an der gegebenen Adresse
(Funktions-Template) [edit]
(C++17)
zerstört eine Folge von Objekten
(Funktions-Template) [edit]
(C++17)
zerstört eine Folge von n Objekten
(Funktions-Template) [edit]
erzeugt ein Objekt an der angegebenen Adresse
(Funktions-Template) [edit]

[Bearbeiten] 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 für Iteratoren, Sentinels and Folgen keine Ausnahmen werfen.
(exposition-only concept)
kopiert eine Folge von Objekten in nicht initialisierten Speicher
(niebloid) [edit]
kopiert eine Folge von n Objekten in nicht initialisierten Speicher
(niebloid) [edit]
füllt einen nicht initialisierten Speicherbereich durch Kopien eines Objektes auf
(niebloid) [edit]
füllt nicht initialisierten Speicher durch eine Folge von n Kopien eines Objektes
(niebloid) [edit]
verschiebt eine Folge von Objektren in nicht initialisierten Speicher
(niebloid) [edit]
verschiebt eine Folge n Objekten in nicht initialisierten Speicher
(niebloid) [edit]
erzeugt eine Folge von Objekten durch default-initialization in nicht initialisierten Speicherbereich
(niebloid) [edit]
erzeugt eine Folge von n Objekten durch default-initialization in nicht initialisierten Speicher mit gegebener Adresse
(niebloid) [edit]
erzeugt eine Folge von Objekten durch value-initialization in nicht initialisierten Speicherbereich
(niebloid) [edit]
erzeugt eine Folge von n Objekten durch value-initialization in nicht initialisierten Speicher mit gegebener Adresse
(niebloid) [edit]
zerstört ein Objekt an der angegebenen Adresse
(niebloid) [edit]
zerstört eine Folge von Objekten
(niebloid) [edit]
zerstört eine Folge von n Objekten
(niebloid) [edit]
erzeugt ein Objekt an der angegebenen Adresse
(niebloid) [edit]

[Bearbeiten] Unterstützung für Garbage Collectors

definiert in Header <memory>
erklärt, daß ein Objekt nicht recycelt werden kann
(Funktion) [edit]
gibt an, dass ein Objekt wiederverwertet werden kann
(Funktions-Template) [edit]
gibt an, daß ein Speicherbereich keine rückführbaren Zeigern enthält
(Funktion) [edit]
hebt die Wirkung von std::declare_no_pointers auf
(Funktion) [edit]
listet die Sicherheitsmodelle von Zeigern auf
(Klasse) [edit]
liefert den Zeiger auf das aktuelle Sicherheitsmodell
(Funktion) [edit]

[Bearbeiten] Verschiedenes

definiert in Header <memory>
liefert Informationen über zeigerähnliche Typen
(Klassen-Template) [edit]
erzeugt einen nativen Zeiger aus einem Type, der sich wie ein Zeiger verhält
(Funktions-Template) [edit]
(C++11)
ermittelt die tatsächlichen Adresse eines Objekts, selbst wenn der Dereferenzierungsoperator überladen ist
(Funktions-Template) [edit]
(C++11)
richtet einen Zeiger in einem Puffer aus
(Funktion) [edit]
zeigt dem Kompiler an, daß ein Zeiger ausgerichtet ist.
(Funktions-Template) [edit]

[Bearbeiten] Low level memory management

Enthält beispielsweise operator new, operator delete, std::set_new_handler

[Bearbeiten] Speicherverwaltung im C-Stil

Enthält beispielsweise std::malloc, std::free

[Bearbeiten] Maschinennahe Speicherverwaltung

Enthält beispielsweise operator new , operator delete , std::set_new_handler