描述 max 類別物件,此物件可將 freelist 物件的長度上限限制為固定值。
語法
template <std::size_t Max>
class max_fixed_size
參數
Max
max 類別,可決定要在 freelist 中儲存的元素數目上限。
建構函式
| 建構函式 | 描述 |
|---|---|
| max_fixed_size | 建構類型 max_fixed_size 的物件。 |
成員函式
| 成員函數 | 描述 |
|---|---|
| allocated | 遞增已配置的記憶體區塊計數。 |
| deallocated | 遞減已配置的記憶體區塊計數。 |
| full | 傳回指定是否應該為可用清單新增更多記憶體區塊的值。 |
| released | 遞減可用清單上的記憶體區塊計數。 |
| saved | 遞增可用清單上的記憶體區塊計數。 |
需求
Header:<allocators>
命名空間: stdext
max_fixed_size::allocated
遞增已配置的記憶體區塊計數。
void allocated(std::size_t _Nx = 1);
參數
_Nx
遞增值。
備註
此成員函式不會執行任何動作。 每次 cache_freelist::allocate 成功呼叫運算子 new 之後,都會呼叫此成員函式。 自變數 _Nx 是運算子 new所配置區塊中的記憶體區塊數目。
max_fixed_size::d eallocated
遞減已配置的記憶體區塊計數。
void deallocated(std::size_t _Nx = 1);
參數
_Nx
遞增值。
備註
此成員函式不會執行任何動作。 每次 cache_freelist::deallocate 呼叫運算子 delete 之後,都會呼叫此成員函式。 自變數 _Nx 是運算元 delete解除分配之區塊中的記憶體區塊數目。
max_fixed_size::full
傳回指定是否應該為可用清單新增更多記憶體區塊的值。
bool full();
傳回值
如果是 Max <= _Nblocks,則為 true;否則為 false。
備註
此成員函式會由 cache_freelist::deallocate 呼叫。 如果此呼叫傳回 true,deallocate 便會將記憶體區塊放到可用清單上,如果傳回 false,deallocate 則會呼叫運算子 delete 來將區塊解除配置。
max_fixed_size::max_fixed_size
建構類型 max_fixed_size 的物件。
max_fixed_size();
備註
此建構函式會將預存值 _Nblocks 初始化為零。
max_fixed_size::released
遞減可用清單上的記憶體區塊計數。
void released();
備註
遞減預存值 _Nblocks。 每當 cache_freelist::allocate 從可用清單中移除記憶體區塊時,都會呼叫目前 max 類別的 released 成員函式。
max_fixed_size::saved
遞增可用清單上的記憶體區塊計數。
void saved();
備註
此成員函式會遞增預存值 _Nblocks。 每當 cache_freelist::deallocate 將記憶體區塊放到可用清單上時,都會呼叫此成員函式。