Supresión de la generación de C++ vtable se puede hacer en MSVC utilizando el atributo __declspec(novtable)
. Sin embargo, parece que there is no equivalent attribute para el compilador GNU C++. El hecho es que al dejar los vtables para clases virtuales puras innecesariamente enlaces en __cxa_abort()
y muchos otros, y quiero evitar que esto ocurra porque estoy programando para un sistema integrado. ¿Entonces qué debo hacer?¿Cómo suprimo la generación de vtable de C++ para clases virtuales puras utilizando G ++?
struct ISomeInterface
{
virtual void Func() = 0;
};
class CSomeClass : public ISomeInterface
{
virtual void Func();
}
void CSomeClass::Func()
{
//...
}