我想使用运算符(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
,它将引导它进行正确的重载。Live example
关于c++ - 用于获取nothrow运算符的地址的C++语法new,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23336351/