[英]Is there an elegant C++ implementation of fixed-size allocator?
我认为,如果必须包含的头文件的数量尽可能少,则C ++库是“优雅的”。
我知道已经有固定大小的分配器,如Loki::SmallObjectAllocator
和boost::pool
。 尽管两者都很出色,但我认为它们并不优雅,也不容易无缝集成到项目中。
大多数时候,我只需要Boost库的一小部分,但是我必须在机器上安装整个库。 例如,如果我想使用boost :: pool,我希望只包含一个头文件boost_pool.h
完成工作。 因为我认为固定大小的分配器不应过多地依赖于其他组件。 我认为理想的代码应如下所示:
#include <boost_pool.h>
int main()
{
boost::pool<int> p;
int* v = p.allocate();
}
有没有这样的图书馆?
欢迎您来我的 。 是否优雅,都可以决定。 但这只是一个短头,仅依赖于几个小的标准头。 分配器满足C ++ 11分配器要求,这是C ++ 03分配器要求的子集。 如果需要,您总是可以添加C ++ 03样板。
您在使用GCC吗? 它的标准库带有一些固定大小的分配器作为扩展,请参阅http://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#allocator.ext
它们是相当独立的(不确定优雅,自从我正确地看了他们的代码以来已经有很长时间了)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.