5

如果必须包含的头文件数量尽可能少,我认为 C++ 库是“优雅的”。

我知道已经存在固定大小的分配器,例如Loki::SmallObjectAllocatorboost::pool。虽然两者都很优秀,但我认为它们并不优雅,也不容易无缝集成到项目中。

大多数时候,我只需要 boost 库的一小部分,但我必须在我的机器上安装整个库。例如,如果我想使用 boost::pool,我希望只包含一个头文件boost_pool.h并完成工作。因为我认为固定大小的分配器不应该如此依赖于太多其他组件。在我看来,理想的代码应该如下所示:

#include <boost_pool.h>

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

有没有这样的图书馆?

4

2 回答 2

5

欢迎你来的。优雅与否,你可以决定。但它只是一个短标题,依赖于几个小的标准标题。分配器满足 C++11 分配器要求,这是 C++03 分配器要求的子集。如果需要,您可以随时添加 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 回答