rts_alloc 类

rts_alloc 类模板描述一种筛选器,它含有大量缓存实例,并确定运行时(而非编译时)用于分配和解除分配的实例。

语法

template <class Cache>
class rts_alloc

参数

缓存
数组中包含的缓存实例的类型。 可以是 cache_chunklistcache_freelistcache_suballoc

注解

这种类模板持有多个块分配器实例,并确定运行时(而非编译时)用于分配或解除分配的实例。 它与不能编译重新绑定的编译器一起使用。

成员函数

成员函数 说明
allocate 分配内存块。
deallocate 从指定位置开始从存储中释放指定数量的的对象。
equals 比较两个缓存是否相等。

要求

标头:<allocators>

命名空间: stdext

rts_alloc::allocate

分配内存块。

void *allocate(std::size_t count);

参数

count
数组中要分配的元素数目。

返回值

指向已分配对象的指针。

注解

成员函数返回 caches[_IDX].allocate(count),其中索引 _IDX 由所请求的块大小 count 决定,但如果 count 太大,它将返回 operator new(count)。 用于表示缓存对象的 cache

rts_alloc::deallocate

从指定位置开始从存储中释放指定数量的的对象。

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

参数

ptr
指向要从存储中释放的第一个对象的指针。

count
要从存储中释放的对象数量。

备注

成员函数将调用 caches[_IDX].deallocate(ptr, count),其中索引 _IDX 由所请求的块大小 count 决定,但如果 count 太大,它将返回 operator delete(ptr)

rts_alloc::equals

比较两个缓存是否相等。

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

参数

_Cache
与筛选器关联的缓存对象。

_Other
要用于比较是否相等的缓存对象。

备注

如果结果为 caches[0].equals(other.caches[0]),则为 true;否则为 falsecaches 表示缓存对象的数组。

另请参阅

ALLOCATOR_DECL
<allocators>