rts_alloc 类
rts_alloc 类模板描述一种筛选器,它含有大量缓存实例,并确定运行时(而非编译时)用于分配和解除分配的实例。
语法
template <class Cache>
class rts_alloc
参数
缓存
数组中包含的缓存实例的类型。 可以是 cache_chunklist
、cache_freelist
或 cache_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
;否则为 false
。 caches
表示缓存对象的数组。