cache_freelist クラス
1 つのサイズのメモリ ブロックを割り当ておよび割り当て解除するブロック アロケーターを定義します。
構文
template <std::size_t Sz, class Max>
class cache_freelist
パラメーター
Sz
割り当てられる配列内の要素の数。
Max (最大値)
フリー リストの最大サイズを表す max クラスです。 max_fixed_size、max_none、max_unbounded、max_variable_size のいずれかにすることができます。
解説
cache_freelist クラス テンプレートは、サイズが Sz であるメモリ ブロックのフリー リストを保持します。 フリー リストがいっぱいになると、operator delete を使用してメモリ ブロックの割り当てを解除します。 フリー リストが空になると、operator new を使用して新しいメモリ ブロックを割り当てます。 フリー リストの最大サイズは、max クラスで Max パラメーターに渡されたクラスによって決定されます。
各メモリブロックは、使用可能なメモリの Sz バイトと、operator new と operator delete に必要なデータを保持します。
コンストラクター
コンストラクター | 説明 |
---|---|
cache_freelist | cache_freelist 型のオブジェクトを構築します。 |
メンバー関数
メンバー関数 | 説明 |
---|---|
allocate | メモリのブロックを割り当てます。 |
deallocate | 指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。 |
要件
ヘッダー: <allocators>
名前空間: stdext
cache_freelist::allocate
メモリのブロックを割り当てます。
void *allocate(std::size_t count);
パラメーター
count
割り当てられる配列内の要素の数。
戻り値
割り当てられたオブジェクトへのポインター。
解説
cache_freelist::cache_freelist
cache_freelist
型のオブジェクトを構築します。
cache_freelist();
解説
cache_freelist::d eallocate
指定した位置で始まるストレージから、指定された数のオブジェクトを解放します。
void deallocate(void* ptr, std::size_t count);
パラメーター
ptr
記憶域から割り当てを解除される最初のオブジェクトへのポインター。
count
記憶域から割り当てを解除されるオブジェクトの数。