是否有一个优雅的固定大小分配器的C ++实现?

时间:2013-01-22 09:51:36

标签: c++ performance object memory-management c++11

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

我知道现有固定大小的分配器,如Loki::SmallObjectAllocatorboost::pool。虽然两者都很优秀,但我认为它们不优雅,不易与项目无缝集成。

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

#include <boost_pool.h>

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

是否存在这样的图书馆?

2 个答案:

答案 0 :(得分:4)

欢迎您mine。无论是否优雅,你都可以决定。但它只是一个短头,只依赖于几个小标准头。分配器满足C ++ 11分配器要求,这是C ++ 03分配器要求的子集。如果需要,您可以随时添加C ++ 03样板。

答案 1 :(得分:1)

你在使用GCC吗?它的标准库附带了一些固定大小的分配器作为扩展,请参阅http://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#allocator.ext

他们是相当独立的(不确定优雅,自从我正确查看他们的代码以来已经很长时间了)