我想将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 ')'
上一行的正确语法应该是什么?
答案 0 :(得分:4)
与前一个相同:
NewFuncNoThrow newAddrNoThrow = &operator new;
operator new
是一个重载的函数名。当需要转换为特定类型时,它将被解析 - 该类型为NewFuncNoThrow
,这将指导它正确的重载。