Sdílet prostřednictvím


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 Allocaloká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_typetento 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_typetento 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_typetento 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_typetento 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>::typetento 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í.