talloc のようなプールを提供し、特に C++ の機能とうまく連携するように設計されたメモリ割り当てライブラリはありますか?
特に:
プールの大きさを事前に予測できます。誤ってオーバーフローする危険はありません。
プールにオブジェクトを割り当てた場合、プール全体の割り当てが解除されるまで、そのストレージを再利用する必要はありません。(そのため、オブジェクトは単純にプールに順番に割り当てることができ、さまざまな型のアラインメントを考慮してパディングを挿入する以外に無駄はありません。)
さまざまなサイズとアライメントのオブジェクトを 1 つのプールに割り当てる機能が必要です。
標準ライブラリ コンテナーの要素をプールに格納する必要があります。(s の特定のケースでは
std::vector
、構築時に内部バッファーの容量を設定し、それ以上ベクトルを大きくしようとはしません。)
私がしたくないことは次のとおりです。
- デストラクタを再発明します。
- 例外を再発明します。
- 標準ライブラリ コンテナーを再発明します。
- を使用し
void *
ます。