allocator_traits-Klasse
Die Klassenvorlage beschreibt ein Objekt, das einen Allocatortyp ergänzt. Ein Allocatortyp ist jeder Typ, der ein Zuweisungsobjekt beschreibt, das zum Verwalten von zugewiesenem Speicherplatz verwendet wird. Sie können insbesondere für jeden Allocator des Typs Alloc
allocator_traits<Alloc>
verwenden, um alle Informationen zu erhalten, die für einen zuweisungsfähigen Container erforderlich sind. Weitere Informationen finden Sie unter der Standard-Allocator-Klasse.
Syntax
template <class Alloc>
class allocator_traits;
Member
TypeDefs
Name | Beschreibung |
---|---|
allocator_type |
Dieser Typ stellt ein Synonym für den Vorlagenparameter Alloc dar. |
const_pointer |
Dieser Typ ist Alloc::const_pointer , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ pointer_traits<pointer>::rebind<const value_type> . |
const_void_pointer |
Dieser Typ ist Alloc::const_void_pointer , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ pointer_traits<pointer>::rebind<const void> . |
difference_type |
Dieser Typ ist Alloc::difference_type , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ pointer_traits<pointer>::difference_type . |
pointer |
Dieser Typ ist Alloc::pointer , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ value_type * . |
propagate_on_container_copy_assignment |
Dieser Typ ist Alloc::propagate_on_container_copy_assignment , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ false_type . |
propagate_on_container_move_assignment |
Dieser Typ ist Alloc::propagate_on_container_move_assignment , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ false_type . Wenn der Typ weiter gilt, kopiert ein zuweisungsfähiger Container seinen gespeicherten Allocator auf eine Bewegungszuweisung. |
propagate_on_container_swap |
Dieser Typ ist Alloc::propagate_on_container_swap , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ false_type . Wenn der Typ weiter gilt, tauscht ein zuweisungsfähiger Container seinen gespeicherten Allocator auf einem Swap aus. |
size_type |
Dieser Typ ist Alloc::size_type , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ make_unsigned<difference_type>::type . |
value_type |
Dieser Typ ist ein Synonym für Alloc::value_type . |
void_pointer |
Dieser Typ ist Alloc::void_pointer , wenn dieser Typ wohlgeformt ist; andernfalls ist dieser Typ pointer_traits<pointer>::rebind<void> . |
Statische Methoden
Folgende statische Methoden rufen die entsprechenden Methoden auf einem vorhandenen Allocator-Parameter auf.
Name | Beschreibung |
---|---|
allocate | Eine statische Methode, die mithilfe des vorhandenen Allocator-Parameters Arbeitsspeicher zuweist. |
construct | Eine statische Methode, die mithilfe eines angegebenen Allocators ein Objekt erstellt. |
deallocate | Eine statische Methode, die mithilfe eines angegebenen Allocators eine angegebene Anzahl von Objekten freigibt. |
destroy | Eine statische Methode, die mithilfe eines angegebenen Allocators den Destruktor in einem Objekt aufruft, ohne dass dessen Arbeitsspeicher freigegeben wird. |
max_size | Eine statische Methode, die mithilfe eines angegebenen Allocators die maximale Anzahl von zuweisbaren Objekten ermittelt. |
select_on_container_copy_construction | Eine statische Methode, die select_on_container_copy_construction in einem angegebenen Allocator aufruft. |
allocate
Eine statische Methode, die mithilfe des vorhandenen Allocator-Parameters Arbeitsspeicher zuweist.
static pointer allocate(Alloc& al, size_type count);
static pointer allocate(Alloc& al, size_type count,
typename allocator_traits<void>::const_pointer* hint);
Parameter
al
Ein Zuweisungsobjekt.
count
Die Anzahl der zuzuweisenden Elemente.
Hinweis
Ein const_pointer
, der dem Zuweisungsobjekt möglicherweise dabei hilft, die Anforderung von Speicherplatz zu erfüllen. Dazu sucht er die Adresse eines vor der Anforderung zugewiesenen Objekts. Ein NULL-Zeiger wird nicht als Hinweis behandelt.
Rückgabewert
Jede Methode gibt einen Zeiger auf das zugewiesene Objekt zurück.
Die erste statische Methode gibt al.allocate(count)
zurück.
Die zweite Methode gibt dann al.allocate(count, hint)
zurück, wenn der Ausdruck wohlgeformt ist; andernfalls al.allocate(count)
.
Konstrukt
Eine statische Methode, die mithilfe eines angegebenen Allocators ein Objekt erstellt.
template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);
Parameter
al
Ein Zuweisungsobjekt.
ptr
Ein Zeiger auf den Speicherort, in dem das Objekt erstellt werden soll.
args
Eine Liste von Argumenten, die an den Objektkonstruktor übergeben wird.
Hinweise
Die statische Memberfunktion ruft al.construct(ptr, args...)
auf, wenn der Ausdruck wohlgeformt ist; andernfalls wertet es ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...)
aus.
deallocate
Eine statische Methode, die mithilfe eines angegebenen Allocators eine angegebene Anzahl von Objekten freigibt.
static void deallocate(Alloc al,
pointer ptr,
size_type count);
Parameter
al
Ein Zuweisungsobjekt.
ptr
Ein Zeiger auf den Anfangsort des Objekts, dessen Zuweisung aufzuheben ist.
count
Die Anzahl der freizugebenden Objekte.
Hinweise
Diese Methode ruft al.deallocate(ptr, count)
auf.
Diese Methode löst keine Aktion aus.
destroy
Eine statische Methode, die mithilfe eines angegebenen Allocators den Destruktor in einem Objekt aufruft, ohne dass dessen Arbeitsspeicher freigegeben wird.
template <class Uty>
static void destroy(Alloc& al, Uty* ptr);
Parameter
al
Ein Zuweisungsobjekt.
ptr
Ein Zeiger auf den Speicherort des Objekts.
Hinweise
Diese Methode ruft al.destroy(ptr)
auf, wenn der Ausdruck wohlgeformt ist; andernfalls wertet es ptr->~Uty()
aus.
max_size
Eine statische Methode, die mithilfe eines angegebenen Allocators die maximale Anzahl von zuweisbaren Objekten ermittelt.
static size_type max_size(const Alloc& al);
Parameter
al
Ein Zuweisungsobjekt.
Hinweise
Diese Methode gibt dann al.max_size()
zurück, wenn der Ausdruck wohlgeformt ist; andernfalls numeric_limits<size_type>::max()
.
select_on_container_copy_construction
Eine statische Methode, die select_on_container_copy_construction
in einem angegebenen Allocator aufruft.
static Alloc select_on_container_copy_construction(const Alloc& al);
Parameter
al
Ein Zuweisungsobjekt.
Rückgabewert
Diese Methode gibt al.select_on_container_copy_construction()
zurück, wenn dieser Typ wohlgeformt ist; andernfalls wird al zurückgegeben.
Hinweise
Diese Methode wird verwendet, um einen Allocator anzugeben, wenn der zugeordnete Container durch eine Kopie erstellt wurde.