gpt4 book ai didi

c++ - boost::pool_allocator 需要八个静态库?

转载 作者:行者123 更新时间:2023-11-28 00:43:20 25 4
gpt4 key购买 nike

我试图从 Boost 库中添加相当有限的功能到我的项目中,即在“pool_allocator”类的帮助下为池中的小对象分配内存,并发现我需要将项目依赖项添加到 4调试静态库文件和 4 发布静态库文件。 IE。像这样一行需要 8 个库文件依赖:

boost::container::vector<int, boost::pool_allocator<int> > v;

有没有办法在不链接到静态库的情况下使用这些类? (也许模板参数的某种组合?)

最佳答案

我读到的关于 boost 池的所有内容是:根本不要使用它。该库相当旧(在 boost 1.54 中,所有文件的版权都是 2000 和 2001,除了 pool_alloc.hpp,它是在 2010 年编辑的)你可以看看 here有关性能的问题(寻找 James Kanze 的答案)。如果你只想使用 boost,我建议使用另一个库。如果您需要自定义分配器,请执行基准测试。

编辑:

来自 Pools docu :

In general, use Pools when you need a more efficient way to do unusual memory control.

所以问题是异常内存控制到底是什么?它是否满足您对内存的特殊需求? Andrei Alexandrescu在“现代 C++ 设计”中写了关于内存分配的内容,并且根据分配 Release模式可能会有非常不同的要求。但是根据这个paper他不相信这是一个非常好的章节。

所以对我来说,最后一个问题是在内存管理问题上池是否比 std::allocator 更好?你必须弄乱它。即使在池中实现了很少的逻辑,也可能在您的实现中使用更有效的内存管理算法。顺便说一句,池的错误之一是 "Boost pool library it not header only as claimed in documentation" .

关于c++ - boost::pool_allocator 需要八个静态库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17670094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com