用于获取nothrow运算符new的地址的C ++语法

时间:2014-04-28 08:40:49

标签: c++ syntax

我想将operator(std :: nothrow)的地址改为new。

typedef void* (*NewFunc)(size_t);
NewFunc newAddr = &operator new; // OK

typedef void* (*NewFuncNoThrow)(size_t, const std::nothrow_t&);
NewFuncNoThrow newAddrNoThrow = &operator (std::nothrow) new; // Syntax error ')'

上一行的正确语法应该是什么?

1 个答案:

答案 0 :(得分:4)

与前一个相同:

NewFuncNoThrow newAddrNoThrow = &operator new;

operator new是一个重载的函数名。当需要转换为特定类型时,它将被解析 - 该类型为NewFuncNoThrow,这将指导它正确的重载。

Live example