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

C++ syntax for taking the address of nothrow operator new

本文关键字:C++ 语法 地址 new 获取 nothrow 运算符 用于      更新时间:2023-10-16

我想将运算符(std::nothrow)的地址设为新地址。

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 ')'

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

与上一个相同:

NewFuncNoThrow newAddrNoThrow = &operator new;

operator new是一个重载函数名。它将在需要转换为特定类型时得到解决,该类型为NewFuncNoThrow,这将引导它进行正确的重载。

实时示例