Udostępnij za pośrednictwem


allocator_traits — klasa

Szablon klasy opisuje obiekt, który uzupełnia typ alokatora. Typ alokatora to dowolny typ opisujący obiekt alokatora używany do zarządzania przydzielonym magazynem. W szczególności dla dowolnego typu Allocalokatora można użyć allocator_traits<Alloc> do określenia wszystkich informacji potrzebnych przez kontener z obsługą alokatora. Aby uzyskać więcej informacji, zobacz domyślną klasę alokatora.

Składnia

template <class Alloc>
    class allocator_traits;

Elementy członkowskie

Typedefs

Nazwa/nazwisko opis
allocator_type Ten typ jest synonimem parametru Allocszablonu .
const_pointer Ten typ to Alloc::const_pointer, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to pointer_traits<pointer>::rebind<const value_type>.
const_void_pointer Ten typ to Alloc::const_void_pointer, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to pointer_traits<pointer>::rebind<const void>.
difference_type Ten typ to Alloc::difference_type, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to pointer_traits<pointer>::difference_type.
pointer Ten typ to Alloc::pointer, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to value_type *.
propagate_on_container_copy_assignment Ten typ to Alloc::propagate_on_container_copy_assignment, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to false_type.
propagate_on_container_move_assignment Ten typ to Alloc::propagate_on_container_move_assignment, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to false_type. Jeśli typ ma wartość true, kontener z włączoną obsługą alokatora kopiuje przechowywany alokator w przypisaniu przenoszenia.
propagate_on_container_swap Ten typ to Alloc::propagate_on_container_swap, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to false_type. Jeśli typ ma wartość true, kontener z włączoną obsługą alokatora zamienia jego składowany alokator na zamianę.
size_type Ten typ to Alloc::size_type, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to make_unsigned<difference_type>::type.
value_type Ten typ jest synonimem .Alloc::value_type
void_pointer Ten typ to Alloc::void_pointer, jeśli ten typ jest poprawnie sformułowany; w przeciwnym razie ten typ to pointer_traits<pointer>::rebind<void>.

Metody statyczne

Następujące metody statyczne wywołają odpowiednią metodę dla danego parametru alokatora.

Nazwa/nazwisko opis
allocate Metoda statyczna, która przydziela pamięć przy użyciu danego parametru alokatora.
konstruować Metoda statyczna, która używa określonego alokatora do konstruowania obiektu.
Deallocate Metoda statyczna, która używa określonego alokatora do cofnięcia przydziału określonej liczby obiektów.
niszczyć Metoda statyczna, która używa określonego alokatora do wywoływania destruktora na obiekcie bez cofnięcia przydziału pamięci.
max_size Metoda statyczna, która używa określonego alokatora do określenia maksymalnej liczby obiektów, które można przydzielić.
select_on_container_copy_construction Metoda statyczna, która wywołuje select_on_container_copy_construction określony alokator.

allocate

Metoda statyczna, która przydziela pamięć przy użyciu danego parametru alokatora.

static pointer allocate(Alloc& al, size_type count);

static pointer allocate(Alloc& al, size_type count,
    typename allocator_traits<void>::const_pointer* hint);

Parametry

Al
Obiekt alokatora.

count
Liczba elementów do przydzielenia.

aluzja
Obiekt const_pointer , który może pomóc obiektowi alokatora w zaspokojeniu żądania magazynu przez zlokalizowanie adresu przydzielonego obiektu przed żądaniem. Wskaźnik o wartości null jest traktowany jako brak wskazówki.

Wartość zwracana

Każda metoda zwraca wskaźnik do przydzielonego obiektu.

Pierwsza metoda statyczna zwraca wartość al.allocate(count).

Druga metoda zwraca al.allocate(count, hint)wartość , jeśli wyrażenie jest poprawnie sformułowane; w przeciwnym razie zwraca wartość al.allocate(count).

konstruować

Metoda statyczna, która używa określonego alokatora do konstruowania obiektu.

template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);

Parametry

Al
Obiekt alokatora.

ptr
Wskaźnik do lokalizacji, w której ma zostać skonstruowany obiekt.

args
Lista argumentów przekazywanych do konstruktora obiektu.

Uwagi

Statyczna funkcja składowa wywołuje al.construct(ptr, args...)metodę , jeśli to wyrażenie jest poprawnie sformułowane; w przeciwnym razie oblicza wartość ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...).

Deallocate

Metoda statyczna, która używa określonego alokatora do cofnięcia przydziału określonej liczby obiektów.

static void deallocate(Alloc al,
    pointer ptr,
    size_type count);

Parametry

Al
Obiekt alokatora.

ptr
Wskaźnik do lokalizacji początkowej obiektów do cofnięcia przydziału.

count
Liczba obiektów do cofnięcia przydziału.

Uwagi

Ta metoda wywołuje metodę al.deallocate(ptr, count).

Ta metoda nie zgłasza niczego.

niszczyć

Metoda statyczna, która używa określonego alokatora do wywoływania destruktora na obiekcie bez cofnięcia przydziału pamięci.

template <class Uty>
    static void destroy(Alloc& al, Uty* ptr);

Parametry

Al
Obiekt alokatora.

ptr
Wskaźnik do lokalizacji obiektu.

Uwagi

Ta metoda wywołuje al.destroy(ptr)metodę , jeśli wyrażenie jest poprawnie sformułowane; w przeciwnym razie oblicza wartość ptr->~Uty().

max_size

Metoda statyczna, która używa określonego alokatora do określenia maksymalnej liczby obiektów, które można przydzielić.

static size_type max_size(const Alloc& al);

Parametry

Al
Obiekt alokatora.

Uwagi

Ta metoda zwraca al.max_size()wartość , jeśli wyrażenie jest poprawnie sformułowane; w przeciwnym razie zwraca wartość numeric_limits<size_type>::max().

select_on_container_copy_construction

Metoda statyczna, która wywołuje select_on_container_copy_construction określony alokator.

static Alloc select_on_container_copy_construction(const Alloc& al);

Parametry

Al
Obiekt alokatora.

Wartość zwracana

Ta metoda zwraca wartość al.select_on_container_copy_construction(), jeśli ten typ jest prawidłowo sformułowany; w przeciwnym razie zwraca wartość al.

Uwagi

Ta metoda służy do określania alokatora podczas tworzenia kopii skojarzonego kontenera.