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, но не для новой.