我认为如果必须包含的头文件数量尽可能少,C++ 库就是“优雅的”。
我知道已经存在固定大小的分配器,例如Loki::SmallObjectAllocator
and boost::pool
。虽然两者都很优秀,但我认为它们不够优雅,也不容易无缝集成到项目中。
大多数时候,我只需要 boost 库的一小部分,但我必须在我的机器上安装整个库。例如,如果我想使用 boost::pool,我希望只包含ONE头文件boost_pool.h
工作完成了。因为我认为固定大小的分配器不应该如此依赖于太多其他组件。在我看来,理想的代码应该如下所示:
#include <boost_pool.h>
int main()
{
boost::pool<int> p;
int* v = p.allocate();
}
有这样的图书馆吗?
欢迎您来到mine http://howardhinnant.github.io/stack_alloc.html。优雅与否,你可以决定。但它只是一个短标头,仅依赖于几个小的标准标头。该分配器满足 C++11 分配器要求,这是 C++03 分配器要求的子集。如果需要,您可以随时添加 C++03 样板。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)