Namensräume
Varianten
Aktionen

std::allocator_traits

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

Allocatoren
allocator_traits
(C++11)
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
 
 
Definiert in Header <memory>
template< class Alloc >
struct allocator_traits;
(seit C++11)

Die Klasse allocator_traits stellt den standardisierten Weg dar, um auf verschiedene Eigenschaften von Allocatoren zuzugreifen. Die Standardcontainer und andere Standardbibliothekskomponenten greifen über diese Vorlage auf Allocatoren zu, was die Verwendung jedes Klassentyps als Allocator ermöglicht, solange die vom Benutzer bereitgestellte Spezialisierung von std::allocator_traits die gesamte erforderliche Funktionalität implementiert.

Ein Programm, das eine explizite oder partielle Spezialisierung von std::allocator_traits deklariert, ist nicht wohlgeformt, keine Diagnose erforderlich.

(seit C++23)

Die Standard-, nicht spezialisierte std::allocator_traits enthält die folgenden Member

Inhalt

[edit] Member Types

Typ Definition
allocator_type Alloc
value_type Alloc::value_type
Zeiger Alloc::pointer, falls vorhanden, andernfalls value_type*
const_pointer Alloc::const_pointer, falls vorhanden, andernfalls std::pointer_traits<pointer>::rebind<const value_type>
void_pointer Alloc::void_pointer, falls vorhanden, andernfalls std::pointer_traits<pointer>::rebind<void>
const_void_pointer Alloc::const_void_pointer, falls vorhanden, andernfalls std::pointer_traits<pointer>::rebind<const void>
difference_type Alloc::difference_type, falls vorhanden, andernfalls std::pointer_traits<pointer>::difference_type
size_type Alloc::size_type, falls vorhanden, andernfalls std::make_unsigned<difference_type>::type
propagate_on_container_copy_assignment Alloc::propagate_on_container_copy_assignment, falls vorhanden, andernfalls std::false_type
propagate_on_container_move_assignment Alloc::propagate_on_container_move_assignment, falls vorhanden, andernfalls std::false_type
propagate_on_container_swap Alloc::propagate_on_container_swap, falls vorhanden, andernfalls std::false_type
is_always_equal Alloc::is_always_equal, falls vorhanden, andernfalls std::is_empty<Alloc>::type

[edit] Member Alias Templates

Typ Definition
rebind_alloc<T> Alloc::rebind<T>::other, falls vorhanden, andernfalls SomeAllocator<T, Args>, wenn dieser Alloc die Form SomeAllocator<U, Args> hat, wobei Args null oder mehr Typargumente sind
rebind_traits<T> std::allocator_traits<rebind_alloc<T>>

[edit] Member Functions

[static]
alloziiert uninitialisierten Speicher unter Verwendung des Allokators
(public static member function) [edit]
[static] (C++23)
allokiert Speicher, der mindestens so groß ist wie die angeforderte Größe über einen Allokator
(public static member function) [edit]
[static]
dealloziert Speicher mit dem Allocator
(public static member function) [edit]
[static]
konstruiert ein Objekt im allozierten Speicher
(function template) [edit]
[static]
destruiert ein Objekt im allozierten Speicher
(function template) [edit]
[static]
gibt die vom Allocator unterstützte maximale Objektgröße zurück
(public static member function) [edit]
ermittelt den Allocator, der nach dem Kopieren eines Standardcontainers verwendet werden soll
(public static member function) [edit]

[edit] Defect Reports

Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 2108 C++11 Es gab keine Möglichkeit zu zeigen, dass ein Allocator zustandslos ist is_always_equal bereitgestellt

[edit] Siehe auch

Container mit Allocator; Verwendung zugehöriger Traits (z.B. propagate_on_container_swap)
(benannte Anforderung)
der Standard-Allocator
(Klassen-Template) [edit]
implementiert mehrstufige Allokatoren für mehrstufige Container
(Klassen-Template) [edit]
liefert Informationen über zeigerähnliche Typen
(Klassen-Template) [edit]