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 Alloc
alokatora 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 Alloc szablonu . |
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.