1

boost::pool<> コンストラクターは「要素サイズ」パラメーターを取ります。
boost::object_pool コンストラクターは、「要素の初期数」パラメーターを取ります。

「要素サイズS」「要素の頭文字N」でプールを作成したい。
これは boost::pool で可能ですか?

ありがとうございました

4

1 に答える 1

2

あなたはそれを行うことができますobject_pool; テンプレート パラメーターに基づいて要素のサイズを推測するElementTypeため、サイズを明示的に指定する必要はありません。要求されたチャンク数 (「N」) を追加のコンストラクター パラメーターとして指定できます。

OP コメントに基づく更新:

boost::poolソースから:

explicit pool(const size_type nrequested_size,
    const size_type nnext_size = 32)

したがって、これを行うことができます:

boost::pool<> p(8 * sizeof(int), 64);

サイズ 8 int のチャンクを返し、64 * 8 int の初期割り当てを行うプールが必要な場合。チャンクの初期割り当てを超えると、ストレージは 2 倍になります。

于 2011-03-10T02:13:40.537 に答える