5

インクルードする必要があるヘッダー ファイルの数ができるだけ少ない場合、C++ ライブラリは「エレガント」だと思います。

Loki::SmallObjectAllocatorやのような既存の固定サイズのアロケータがあることは知っていますboost::pool。どちらも優れていますが、エレガントではなく、プロジェクトにシームレスに統合するのは簡単ではないと思います.

ほとんどの場合、boost ライブラリの一部だけが必要ですが、ライブラリ全体をマシンにインストールする必要があります。たとえば、boost::pool を使用する場合、1つのヘッダー ファイルをインクルードboost_pool.hするだけで作業は完了です。固定サイズのアロケーターは、他の多くのコンポーネントに依存するべきではないと思うからです。私の意見では、理想的なコードは次のようになります。

#include <boost_pool.h>

int main()
{
   boost::pool<int> p;
   int* v = p.allocate();
}

そのようなライブラリは存在しますか?

4

2 に答える 2

5

あなたは私のものを歓迎します。エレガントかどうかはあなたが決めることができます。ただし、これは2つの小さな標準ヘッダーに依存する1つの短いヘッダーにすぎません。アロケータは、C++03アロケータ要件のサブセットであるC++11アロケータ要件を満たしています。必要に応じて、いつでもC++03ボイラープレートを追加できます。

于 2013-01-22T16:54:29.783 に答える
2

GCCを使用していますか?標準ライブラリには、拡張機能としていくつかの固定サイズのアロケータが付属しています。http://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#allocator.ext を参照してください。

それらはかなりスタンドアロンです(エレガントかどうかはわかりません。コードを適切に見てから長い時間がかかります)

于 2013-01-22T15:39:12.540 に答える