cache_freelist — Klasa
Definiuje alokator bloków, który przydziela i cofa przydział bloków pamięci o pojedynczym rozmiarze.
Składnia
template <std::size_t Sz, class Max>
class cache_freelist
Parametry
Sz
Liczba elementów w tablicy do przydzielenia.
Maksimum
Maksymalna klasa reprezentująca maksymalny rozmiar bezpłatnej listy. Może to być max_fixed_size, max_none, max_unbounded lub max_variable_size.
Uwagi
Szablon klasy cache_freelist obsługuje bezpłatną listę bloków pamięci o rozmiarze Sz. Gdy lista bezpłatna jest pełna, używa operatora delete do cofnięcia przydziału bloków pamięci. Gdy lista bezpłatna jest pusta, używa operatora nowego do przydzielenia nowych bloków pamięci. Maksymalny rozmiar bezpłatnej listy jest określany przez klasę maksymalną przekazaną w parametrze Max .
Każdy blok pamięci zawiera bajty pamięci do użycia i dane, które operator new i operator delete wymagają.
Konstruktory
Konstruktor | opis |
---|---|
cache_freelist | Tworzy obiekt typu cache_freelist . |
Funkcje składowe
Funkcja składowa | opis |
---|---|
allocate | Przydziela blok pamięci. |
Deallocate | Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji. |
Wymagania
Nagłówek:<alokatory>
Przestrzeń nazw: stdext
cache_freelist::przydziel
Przydziela blok pamięci.
void *allocate(std::size_t count);
Parametry
count
Liczba elementów w tablicy do przydzielenia.
Wartość zwracana
Wskaźnik do przydzielonego obiektu.
Uwagi
cache_freelist::cache_freelist
Tworzy obiekt typu cache_freelist
.
cache_freelist();
Uwagi
cache_freelist::d allocate
Zwalnia określoną liczbę obiektów z magazynu rozpoczynającego się na określonej pozycji.
void deallocate(void* ptr, std::size_t count);
Parametry
ptr
Wskaźnik do pierwszego obiektu, który ma zostać cofnięty z magazynu.
count
Liczba obiektów do cofnięcia przydziału z magazynu.