Поделиться через


Класс max_variable_size

Описывает объект max class, который ограничивает максимальную длину объекта freelist до значения, приблизительно пропорционального количеству выделенных блоков памяти.

Синтаксис

class max_variable_size

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

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

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

Функция-член Description
allocated Увеличивает счетчик выделенных блоков памяти.
deallocated Уменьшает счетчик выделенных блоков памяти.
full Возвращает значение, указывающее, следует ли добавить дополнительные блоки памяти для свободного списка.
released Уменьшает количество блоков памяти в свободном списке.
saved Увеличивает количество блоков памяти в свободном списке.

Требования

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

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

max_variable_size::allocated

Увеличивает счетчик выделенных блоков памяти.

void allocated(std::size_t _Nx = 1);

Параметры

_Nx
Значение приращения.

Замечания

Эта функция-член добавляет _Nx в сохраненное значение _Nallocs. Она вызывается после каждого успешного вызова со стороны cache_freelist::allocate оператора new. Аргумент _Nx — это количество блоков памяти в блоке, выделенном оператором new.

max_variable_size::d eallocated

Уменьшает счетчик выделенных блоков памяти.

void deallocated(std::size_t _Nx = 1);

Параметры

_Nx
Значение приращения.

Замечания

Функция-член вычитает _Nx из сохраненного значения _Nallocs. Она вызывается после каждого вызова со стороны cache_freelist::deallocate оператора delete. Аргумент _Nx — это количество блоков памяти в блоке, освобожденном оператором delete.

max_variable_size::full

Возвращает значение, указывающее, следует ли добавить дополнительные блоки памяти для свободного списка.

bool full();

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

true, если _Nallocs / 16 + 16 <= _Nblocks.

Замечания

Эта функция-член вызывается cache_freelist::deallocate. Если вызов возвращает true, deallocate помещает блок памяти в свободный список; если он возвращает false, deallocate вызывает оператор delete для освобождения блока.

max_variable_size::max_variable_size

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

max_variable_size();

Замечания

Конструктор инициализирует сохраненные значения _Nblocks и _Nallocs нулями.

max_variable_size::released

Уменьшает количество блоков памяти в свободном списке.

void released();

Замечания

Эта функция-член уменьшает хранимое значение _Nblocks. Функция-член released текущего класса max вызывается cache_freelist::allocate каждый раз при удалении блока памяти из свободного списка.

max_variable_size::сохранено

Увеличивает количество блоков памяти в свободном списке.

void saved();

Замечания

Эта функция-член увеличивает хранимое значение _Nblocks. Она вызывается cache_freelist::deallocate каждый раз при помещении блока памяти в свободный список.

См. также

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