namespace X
{
void* operator new (size_t);
}
da mensaje de error como:operador nuevo espacio de nombres dentro
error: ‘void* X::operator new(size_t)’ may not be declared within a namespace
¿Es un gcc compiler bug? En versiones anteriores de gcc, parece estar funcionando. ¿Alguna idea, por qué no está permitido?
Caso de uso: me querían para permitir sólo a medida operator new/delete
para las clases y quería prohibir mundial new/operator
. En lugar de error del enlazador, fue fácil detectar el error del compilador; así que codifiqué:
namespace X {
void* operator new (size_t);
}
using namespace X;
Esto funcionó para la versión anterior de gcc pero no para la nueva.
¿Duplicado de http://stackoverflow.com/questions/1568168/testoperator-new? – Nemo
Si desea utilizar un operador personalizado para las clases, déles una clase base común con ese operador personalizado. – sharptooth