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

xml*_*lmx 5 c++ performance memory-management object c++11

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

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

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

#include <boost_pool.h>

int main()
{
   boost::pool<int> p;
   int* v = p.allocate();
}
Run Code Online (Sandbox Code Playgroud)

有没有这样的图书馆?

How*_*ant 5

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


Jon*_*ely 2

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

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