如何创建从std::allocater继承,它是否合理

How to create inherit from std::allocator and is it resonable?

本文关键字:继承 allocater 是否 std 何创建 创建      更新时间:2023-10-16

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

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

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