xml*_*lmx 5 c++ performance memory-management object c++11
如果必须包含的头文件数尽可能少,我认为C++库是"优雅的".
我知道已有固定大小的分配器,如Loki::SmallObjectAllocator和boost::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)
有没有这样的图书馆?
你在使用海湾合作委员会吗?它的标准库附带了一些固定大小的分配器作为扩展,请参阅http://gcc.gnu.org/onlinedocs/libstdc++/manual/memory.html#allocator.ext
它们相当独立(不确定是否优雅,自从我正确查看他们的代码以来已经很长时间了)