allocator_traits – třída
Šablona třídy popisuje objekt, který doplňuje typ alokátoru. Typ alokátoru je libovolný typ, který popisuje objekt alokátoru, který se používá ke správě přiděleného úložiště. Konkrétně pro jakýkoli typ Alloc
alokátoru můžete použít allocator_traits<Alloc>
k určení všech informací potřebných kontejnerem s povoleným alokátorem. Další informace najdete ve výchozí třídě alokátoru.
Syntaxe
template <class Alloc>
class allocator_traits;
Členové
Typedefs
Název | Popis |
---|---|
allocator_type |
Tento typ je synonymem parametru Alloc šablony . |
const_pointer |
Tento typ je Alloc::const_pointer , pokud je tento typ dobře vytvořen; jinak je pointer_traits<pointer>::rebind<const value_type> tento typ . |
const_void_pointer |
Tento typ je Alloc::const_void_pointer , pokud je tento typ dobře vytvořen; jinak je pointer_traits<pointer>::rebind<const void> tento typ . |
difference_type |
Tento typ je Alloc::difference_type , pokud je tento typ dobře vytvořen; jinak je pointer_traits<pointer>::difference_type tento typ . |
pointer |
Tento typ je Alloc::pointer , pokud je tento typ dobře vytvořen; jinak je value_type * tento typ . |
propagate_on_container_copy_assignment |
Tento typ je Alloc::propagate_on_container_copy_assignment , pokud je tento typ dobře vytvořen; jinak je false_type tento typ . |
propagate_on_container_move_assignment |
Tento typ je Alloc::propagate_on_container_move_assignment , pokud je tento typ dobře vytvořen; jinak je false_type tento typ . Pokud typ obsahuje hodnotu true, kontejner s povoleným alokátorem zkopíruje uložený alokátor na přiřazení přesunutí. |
propagate_on_container_swap |
Tento typ je Alloc::propagate_on_container_swap , pokud je tento typ dobře vytvořen; jinak je false_type tento typ . Pokud typ obsahuje hodnotu true, kontejner s povoleným alokátorem prohodí svůj uložený alokátor na prohození. |
size_type |
Tento typ je Alloc::size_type , pokud je tento typ dobře vytvořen; jinak je make_unsigned<difference_type>::type tento typ . |
value_type |
Tento typ je synonymem pro Alloc::value_type . |
void_pointer |
Tento typ je Alloc::void_pointer , pokud je tento typ dobře vytvořen; jinak je pointer_traits<pointer>::rebind<void> tento typ . |
Statické metody
Následující statické metody volají odpovídající metodu pro daný parametr alokátoru.
Název | Popis |
---|---|
allocate | Statická metoda, která přiděluje paměť pomocí daného parametru alokátoru. |
konstruovat | Statická metoda, která používá zadaný alokátor k vytvoření objektu. |
uvolnit | Statická metoda, která používá zadaný alokátor k uvolnění zadaného počtu objektů. |
zničit | Statická metoda, která používá zadaný alokátor k volání destruktoru objektu bez uvolnění paměti. |
max_size | Statická metoda, která používá zadaný alokátor k určení maximálního počtu objektů, které lze přidělit. |
select_on_container_copy_construction | Statická metoda, která volá select_on_container_copy_construction zadaný alokátor. |
allocate
Statická metoda, která přiděluje paměť pomocí daného parametru alokátoru.
static pointer allocate(Alloc& al, size_type count);
static pointer allocate(Alloc& al, size_type count,
typename allocator_traits<void>::const_pointer* hint);
Parametry
hliník
Objekt alokátoru.
count
Počet prvků, které se mají přidělit.
náznak
Objekt const_pointer
alokátoru může pomoct splnit požadavek na úložiště vyhledáním adresy přiděleného objektu před požadavkem. Ukazatel null se považuje za žádný tip.
Návratová hodnota
Každá metoda vrátí ukazatel na přidělený objekt.
První statická metoda vrátí al.allocate(count)
.
Druhá metoda vrátí al.allocate(count, hint)
, pokud je tento výraz dobře vytvořen; jinak vrátí al.allocate(count)
.
konstruovat
Statická metoda, která používá zadaný alokátor k vytvoření objektu.
template <class Uty, class Types>
static void construct(Alloc& al, Uty* ptr, Types&&... args);
Parametry
hliník
Objekt alokátoru.
ptr
Ukazatel na umístění, kde má být objekt vytvořen.
args
Seznam argumentů předaných konstruktoru objektu.
Poznámky
Statická členová funkce volá al.construct(ptr, args...)
, pokud je tento výraz správně vytvořen; jinak se vyhodnotí ::new (static_cast<void *>(ptr)) Uty(std::forward<Types>(args)...)
.
uvolnit
Statická metoda, která používá zadaný alokátor k uvolnění zadaného počtu objektů.
static void deallocate(Alloc al,
pointer ptr,
size_type count);
Parametry
hliník
Objekt alokátoru.
ptr
Ukazatel na počáteční umístění objektů, které se mají uvolnit.
count
Počet objektů, které se mají uvolnit.
Poznámky
Tato metoda volá al.deallocate(ptr, count)
.
Tato metoda vyvolá nic.
zničit
Statická metoda, která používá zadaný alokátor k volání destruktoru objektu bez uvolnění paměti.
template <class Uty>
static void destroy(Alloc& al, Uty* ptr);
Parametry
hliník
Objekt alokátoru.
ptr
Ukazatel na umístění objektu.
Poznámky
Tato metoda volá al.destroy(ptr)
, pokud je tento výraz dobře vytvořen; jinak vyhodnotí ptr->~Uty()
.
max_size
Statická metoda, která používá zadaný alokátor k určení maximálního počtu objektů, které lze přidělit.
static size_type max_size(const Alloc& al);
Parametry
hliník
Objekt alokátoru.
Poznámky
Tato metoda vrátí al.max_size()
, pokud je tento výraz dobře vytvořen; jinak vrátí numeric_limits<size_type>::max()
.
select_on_container_copy_construction
Statická metoda, která volá select_on_container_copy_construction
zadaný alokátor.
static Alloc select_on_container_copy_construction(const Alloc& al);
Parametry
hliník
Objekt alokátoru.
Návratová hodnota
Tato metoda vrátí al.select_on_container_copy_construction()
, pokud je tento typ dobře vytvořen; jinak vrátí al.
Poznámky
Tato metoda se používá k určení alokátoru při vytvoření přidruženého kontejneru kopírování.