rts_alloc 類別
rts_alloc類別範本描述 保留快取實例陣列的篩選 ,並決定要在運行時間用於配置和解除分配的實例,而不是在編譯時期使用。
語法
template <class Cache>
class rts_alloc
參數
Cache
包含在陣列中的快取執行個體類型, 可以是 cache_chunklist
、cache_freelist
或 cache_suballoc
。
備註
這個類別範本會保存多個區塊配置器實例,並決定要在運行時間用於配置或解除分配的實例,而不是在編譯時期使用。 它會搭配不可編譯重新繫結的編譯器使用。
成員函式
成員函數 | 描述 |
---|---|
allocate | 配置記憶體區塊。 |
deallocate | 從指定位置起算的儲存體中,釋放指定數目的物件。 |
equals | 比較兩個快取是否相等。 |
需求
Header:<allocators>
命名空間: stdext
rts_alloc::allocate
配置記憶體區塊。
void *allocate(std::size_t count);
參數
計數
要配置的陣列元素數目。
傳回值
所配置物件的指標。
備註
成員函式會傳 caches[_IDX].allocate(count)
回 ,其中索引 _IDX
是由要求的區塊大小 計數所決定,或者,如果 計數 太大,則會傳 operator new(count)
回 。 cache
,代表快取物件。
rts_alloc::d eallocate
從指定位置起算的儲存體中,釋放指定數目的物件。
void deallocate(void* ptr, std::size_t count);
參數
ptr
要從儲存體解除配置之第一個物件的指標。
計數
要從儲存空間解除配置的物件數目。
備註
成員函式會呼叫 caches[_IDX].deallocate(ptr, count)
,其中索引 _IDX
是由要求的區塊大小 計數所決定,或者,如果 計數 太大,則會傳 operator delete(ptr)
回 。
rts_alloc::equals
比較兩個快取是否相等。
bool equals(const sync<_Cache>& _Other) const;
參數
_快取
與篩選條件相關聯的快取物件。
_其他
要比較是否相等的快取物件。
備註
若結果是 caches[0].equals(other.caches[0])
,即為 true
,否則為 false
。 caches
代表快取物件的陣列。