Namespaces
Variants

std:: allocator_traits

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
Definiert im Header <memory>
template < class Alloc >
struct allocator_traits ;
(seit C++11)

Die allocator_traits -Klassentemplate bietet den standardisierten Weg, um auf verschiedene Eigenschaften von Allocator s zuzugreifen. Die Standardcontainer und andere Standardbibliothekskomponenten greifen über diese Template auf Allokatoren zu.

Es ist möglich, jeden Klassentyp als Allokator zu verwenden, solange die benutzerdefinierte Spezialisierung von std::allocator_traits alle erforderlichen Funktionen implementiert.

(until C++23)

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

(since C++23)

Der Standard, nicht spezialisierte, std::allocator_traits enthält die folgenden Mitglieder:

Inhaltsverzeichnis

Mitgliedertypen

Typ Definition
allocator_type Alloc
value_type Alloc::value_type
pointer 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

Member-Alias-Templates

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

Memberfunktionen

[static]
weist nicht initialisierten Speicher mittels des Allokators zu
(öffentliche statische Elementfunktion)
[static] (C++23)
weist mindestens die angeforderte Speichergröße über einen Allokator zu
(öffentliche statische Elementfunktion)
[static]
gibt Speicher mittels des Allokators frei
(öffentliche statische Elementfunktion)
[static]
konstruiert ein Objekt im zugewiesenen Speicher
(Funktions-Template)
[static]
zerstört ein im zugewiesenen Speicher gespeichertes Objekt
(Funktions-Template)
[static]
gibt die maximale vom Allokator unterstützte Objektgröße zurück
(öffentliche statische Elementfunktion)
ermittelt den nach dem Kopieren eines Standard-Containers zu verwendenden Allokator
(öffentliche statische Elementfunktion)

Fehlerberichte

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

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

Siehe auch

Container mit Allokator; Verwendung zugehöriger Merkmale (z.B. propagate_on_container_swap )
(Named Requirement)
der Standard-Allokator
(Klassentemplate)
implementiert mehrstufigen Allokator für mehrstufige Container
(Klassentemplate)
stellt Informationen über zeigerähnliche Typen bereit
(Klassentemplate)