namespace X
{
void* operator new (size_t);
}
出现错误消息:
error: ‘void* X::operator new(size_t)’ may not be declared within a namespace
这是不是GCC编译器的一个错误?在旧版 GCC 中似乎可以正常工作。有什么想法为什么不能使用?
用例:
我想要为类只允许自定义operator new/delete
,并且希望禁止全局 new/operator
。为了捕获编译器错误而不是链接器错误,我编写了以下代码:
namespace X {
void* operator new (size_t);
}
using namespace X;
这适用于较旧版本的gcc,但不适用于新版本。