Класс cache_freelist

Задает распределитель блоков, который выделяет и освобождает блоки памяти одного размера.

Синтаксис

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

Параметры

Sz
Число выделяемых элементов в массиве.

Max
Класс max, представляющий максимальный размер списка свободных блоков. Это может быть класс max_fixed_size, max_none, max_unbounded или max_variable_size.

Замечания

Шаблон класса cache_freelist поддерживает свободный список блоков памяти размера Sz. Если бесплатный список заполнен, оператор удаляет блоки памяти. Если свободный список пуст, он использует оператор new для выделения новых блоков памяти. Максимальный размер свободного списка определяется классом max class, переданным в параметре Max .

Каждый блок памяти содержит Sz байты используемой памяти, а также данные, которые требуются для нового оператора и удаления оператора.

Конструкторы

Конструктор Description
cache_freelist Создает объект типа cache_freelist.

Функции элементов

Функция-член Description
allocate Выделяет блок памяти.
deallocate Освобождает указанное число объектов из памяти, начиная с заданной позиции.

Требования

Заголовок:<распределители>

Пространство имен: stdext

cache_freelist::allocate

Выделяет блок памяти.

void *allocate(std::size_t count);

Параметры

count
Число выделяемых элементов в массиве.

Возвращаемое значение

Указатель на выделяемый объект.

Замечания

cache_freelist::cache_freelist

Создает объект типа cache_freelist.

cache_freelist();

Замечания

cache_freelist::d eallocate

Освобождает указанное число объектов из памяти, начиная с заданной позиции.

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

Параметры

ptr
Указатель на первый объект, который необходимо освободить из хранилища.

count
Количество объектов для освобождения из хранилища.

Замечания

См. также

<Распределители>