我们什么时候在 new (::new) 之前使用作用域解析运算符?

when do we use scope resolution operator before new ( ::new)?

我遇到了一段代码,其中范围解析运算符放在 new 之前。我们什么时候使用它。这是什么意思。请问有人能解释一下吗?

::new 是显式全局运算符。这与可能定义的各种 class 范围的运算符 new 相反。例如,如果我在 myclass 中定义一个 operator new,然后在同一个 class 中我想使用全局的,我会说 ::new,而如果我说new 我会得到我定义的 class-特定函数。

我也可能在通用模板代码中使用 ::new,我不确定我可能分配的是什么类型,但想确保我不使用任何 class 特定的分配器(例如例如,我可能需要将结果传递给某些 API,后者将在其上使用全局 ::delete)。

这里列出了所有可能的运算符 new 以供参考:http://en.cppreference.com/w/cpp/memory/new/operator_new