std:: allocator_traits
|
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
|
(until C++23) |
|
Ein Programm, das eine explizite oder partielle Spezialisierung von
|
(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
|
(C++11)
|
Container mit Allokator; Verwendung zugehöriger Merkmale (z.B.
propagate_on_container_swap
)
(Named Requirement) |
|
der Standard-Allokator
(Klassentemplate) |
|
|
(C++11)
|
implementiert mehrstufigen Allokator für mehrstufige Container
(Klassentemplate) |
|
(C++11)
|
stellt Informationen über zeigerähnliche Typen bereit
(Klassentemplate) |