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.

Uwagi

Zobacz też

<Allocators>