次の方法で共有


cache_freelist クラス

1 つのサイズのメモリ ブロックを割り当ておよび割り当て解除するブロック アロケーターを定義します。

構文

template <std::size_t Sz, class Max>
class cache_freelist

パラメーター

Sz
割り当てられる配列内の要素の数。

Max (最大値)
フリー リストの最大サイズを表す max クラスです。 max_fixed_sizemax_nonemax_unboundedmax_variable_size のいずれかにすることができます。

解説

cache_freelist クラス テンプレートは、サイズが Sz であるメモリ ブロックのフリー リストを保持します。 フリー リストがいっぱいになると、operator delete を使用してメモリ ブロックの割り当てを解除します。 フリー リストが空になると、operator new を使用して新しいメモリ ブロックを割り当てます。 フリー リストの最大サイズは、max クラスで Max パラメーターに渡されたクラスによって決定されます。

各メモリブロックは、使用可能なメモリの Sz バイトと、operator newoperator 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
記憶域から割り当てを解除されるオブジェクトの数。

解説

関連項目

<allocators>