Класс 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
представляет массив объектов кэша.