我认为C ++库是优雅的"如果必须包含的头文件数尽可能少。
我知道现有固定大小的分配器,如Loki::SmallObjectAllocator
和boost::pool
。虽然两者都很优秀,但我认为它们不优雅,不易与项目无缝集成。
大多数时候,我只需要升级库的一小部分,但我必须在我的机器上安装整个库。例如,如果我想使用boost :: pool,我希望只包含 ONE 头文件boost_pool.h
并完成工作。因为我认为固定大小的分配器不应该如此依赖于太多其他组件。在我看来,理想的代码应如下所示:
#include <boost_pool.h>
int main()
{
boost::pool<int> p;
int* v = p.allocate();
}
是否存在这样的图书馆?
答案 0 :(得分:4)
欢迎您mine。无论是否优雅,你都可以决定。但它只是一个短头,只依赖于几个小标准头。分配器满足C ++ 11分配器要求,这是C ++ 03分配器要求的子集。如果需要,您可以随时添加C ++ 03样板。
答案 1 :(得分:1)
你在使用GCC吗?它的标准库附带了一些固定大小的分配器作为扩展,请参阅http://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#allocator.ext
他们是相当独立的(不确定优雅,自从我正确查看他们的代码以来已经很长时间了)