我用自己的实现替换了"Tom"
。我希望在我的程序中每次调用"Tom"
时都使用operator new
,但有些情况除外operator new
容器。
是否可以使new
容器使用默认的std
?例如,std
。
答案 0 :(得分:2)
简短的回答是“不”。
当任何编译单元替换operator new()
时,它将被有效替换为程序中的所有编译单元。这意味着operator new()
变体的所有使用或引用都将解决为替换。标准容器中的默认分配器与程序中的任何其他代码一样受到影响。
替换operator new()
及其变体的方案是全有或全无,即您没有得到operator new()
解析为默认版本以及其他解析为替换版本的一些用法。
您可以为容器提供一个分配器,它使用一些方法来获取替换operator new()
以外的原始内存。