何时在使用 new 之前使用作用域解析运算符 (::new)?

3
我发现一段代码中,作用域解析运算符放在new之前。何时使用它?它的意义是什么?能有人解释一下吗?

你知道在其他情境下它是干什么的吗?(如果不知道,为什么不知道?)你是否期望new有其他的含义?(如果是,为什么这样认为?)回答这些问题会让你的问题更加出色。 - Lightness Races in Orbit
1个回答

4
::new是显式的全局操作符。这与可以定义的各种类作用域运算符new相对应。例如,如果我在myclass内部定义了一个operator new,并且在同一类中我想使用全局的那个,我会使用::new,而如果我使用new,则会得到我定义的类特定函数。
我可能还会在通用模板代码中使用::new,因为我不确定要分配什么类型,但是想确保不使用任何类特定的分配器(例如,我可能需要将结果传递给某些API,该API将对其使用全局::delete)。
这里是所有可能的运算符new的大列表供参考:http://en.cppreference.com/w/cpp/memory/new/operator_new

放置 new 值得一提;这是我使用 ::new 最常见的方式。 - Yakk - Adam Nevraumont

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接