Teilen über


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 Allocallocator_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 Allocdar.
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.