std::allocator_traits
| 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 |
(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) |
| [static] (C++23) |
allokiert Speicher, der mindestens so groß ist wie die angeforderte Größe über einen Allokator (public static member function) |
| [static] |
dealloziert Speicher mit dem Allocator (public static member function) |
| [static] |
konstruiert ein Objekt im allozierten Speicher (function template) |
| [static] |
destruiert ein Objekt im allozierten Speicher (function template) |
| [static] |
gibt die vom Allocator unterstützte maximale Objektgröße zurück (public static member function) |
| ermittelt den Allocator, der nach dem Kopieren eines Standardcontainers verwendet werden soll (public static member function) |
[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
| (C++11) |
Container mit Allocator; Verwendung zugehöriger Traits (z.B. propagate_on_container_swap)(benannte Anforderung) |
| der Standard-Allocator (Klassen-Template) | |
| (C++11) |
implementiert mehrstufige Allokatoren für mehrstufige Container (Klassen-Template) |
| (C++11) |
liefert Informationen über zeigerähnliche Typen (Klassen-Template) |