【发布时间】:2016-01-14 22:23:40
【问题描述】:
我正在尝试为特定类编写自定义分配器。我对分配器的经验基本上没有,所以这可能很明显。
我希望我的分配取决于某些参数。粗略地说,我希望有多个内存管理器,每个管理几个对象。在创建对象时,我会知道该对象应该属于哪个管理器。在阅读了关于重载operator new 的大量内容后,我对如何实现我需要的东西感到迷茫。
This page 表示有一个版本的operator new 接受用户定义的参数,但似乎在使用new 分配对象时不会调用此版本。有人可以指出如何构建除全局分配器之外的任何东西吗?在相关说明中,如果我使用重载的特定于类的operator new,如何调用参数化构造函数?
【问题讨论】:
-
您必须编写自定义
operator new重载吗? STL 使用可以作为模板参数传递的分配器类,而不是直接调用new。 -
我需要它们用于不使用 STL 类的自定义数据结构。 templatetypedef 似乎有答案。
标签: c++ c++11 memory-management