Класс rts_alloc

Шаблон класса rts_alloc описывает фильтр , содержащий массив экземпляров кэша, и определяет, какой экземпляр будет использоваться для выделения и распределения сделки во время компиляции вместо времени компиляции.

Синтаксис

template <class Cache>
class rts_alloc

Параметры

Cache
Тип экземпляров кэша, содержащихся в массиве. Он может иметь значение cache_chunklist, cache_freelist или cache_suballoc.

Замечания

Этот шаблон класса содержит несколько экземпляров распределителя блоков и определяет, какой экземпляр следует использовать для выделения или размещения сделки во время компиляции, а не во время компиляции. Он используется с компиляторами, которые не могут скомпилировать повторную привязку.

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

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

Требования

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

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

rts_alloc::allocate

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

void *allocate(std::size_t count);

Параметры

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

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

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

Замечания

Функция-член возвращаетсяcaches[_IDX].allocate(count), где индекс _IDX определяется запрошенным числом размеров блоков или, если число слишком велико, возвращаетсяoperator new(count). cache, представляющий объект кэша.

rts_alloc::d eallocate

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

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

Параметры

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

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

Замечания

Вызывает caches[_IDX].deallocate(ptr, count)функцию-член, где индекс _IDX определяется запрошенным числом размеров блоков или, если число слишком велико, возвращаетсяoperator delete(ptr).

rts_alloc::equals

Сравнивает два кэша на равенство.

bool equals(const sync<_Cache>& _Other) const;

Параметры

_Кэша
Объект кэша, связанный с фильтром.

_Other
Объект кэша для сравнения на равенство.

Замечания

Значение true, если результат caches[0].equals(other.caches[0]); в противном случае — значение false. caches представляет массив объектов кэша.

См. также

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