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ě.