Sdílet prostřednictvím


cache_freelist – třída

Definuje blokový alokátor , který přiděluje a uvolní bloky paměti jedné velikosti.

Syntaxe

template <std::size_t Sz, class Max>
class cache_freelist

Parametry

Sz
Počet prvků v poli, které se mají přidělit.

Max
Maximální třída představující maximální velikost bezplatného seznamu. Může to být max_fixed_size, max_none, max_unbounded nebo max_variable_size.

Poznámky

Šablona třídy cache_freelist udržuje bezplatný seznam bloků paměti velikosti Sz. Pokud je volný seznam plný, používá operátor delete k uvolnění bloků paměti. Když je volný seznam prázdný, použije operátor nové k přidělení nových bloků paměti. Maximální velikost bezplatného seznamu je určena maximální třídou třídy předanou v parametru Max .

Každý blok paměti obsahuje využitelné bajty Sz a data, která operátor nové a operátor odstranit vyžadují.

Konstruktory

Konstruktor Popis
cache_freelist Vytvoří objekt typu cache_freelist.

Členské funkce

Členová funkce Popis
allocate Přidělí blok paměti.
uvolnit Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí.

Požadavky

Záhlaví:<alokátory>

Namespace: stdext

cache_freelist::přidělení

Přidělí blok paměti.

void *allocate(std::size_t count);

Parametry

count
Počet prvků v poli, které se mají přidělit.

Návratová hodnota

Ukazatel na přidělený objekt.

Poznámky

cache_freelist::cache_freelist

Vytvoří objekt typu cache_freelist.

cache_freelist();

Poznámky

cache_freelist::d eallocate

Uvolní zadaný počet objektů od úložiště počínaje zadanou pozicí.

void deallocate(void* ptr, std::size_t count);

Parametry

ptr
Ukazatel na první objekt, který se má uvolnit z úložiště.

count
Počet objektů, které se mají uvolnit z úložiště.

Poznámky

Viz také

<alokátory>