【问题标题】:How to create inherit from std::allocator and is it resonable?如何从 std::allocator 创建继承,是否合理?
【发布时间】:2012-01-26 21:03:21
【问题描述】:

我想知道的很简单 - 如果我们创建一个 DLL,用静态运行时编译它,而在它的代码中我们将创建一个从 std::allocator 继承的简单分配器,我们是否有可能拥有 N 不同堆只使用这个库堆(一个带有分配器的堆)来管理所有 N 个堆的内存?以及如何创建这样的分配器?

【问题讨论】:

  • 您知道标准分配器是无状态的,对吧?

标签: c++ windows stl memory-management allocator


【解决方案1】:

在 Windows 下,可以创建私有堆。查看 MSDN 上的 heap functions。但是,C++ 标准库分配器有一个 stateless 接口。因此,相同类型的两个分配器必须是可互换的(一个分配的内存可以被另一个释放)。

所以,是的,你可以做到这一点,但不能使用 std::allocator

【讨论】:

    猜你喜欢
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    相关资源
    最近更新 更多