Supressing C++ vtable generation can be done in MSVC using the __declspec(novtable)
attribute. However, it seems that there is no equivalent attribute for the GNU C++ compiler. The fact is that leaving the vtables for pure virtual classes unnecessarily links in __cxa_abort()
and many others, and I want to avoid this happening because I'm programming for an embedded system. So, what should I do?
struct ISomeInterface
{
virtual void Func() = 0;
};
class CSomeClass : public ISomeInterface
{
virtual void Func();
}
void CSomeClass::Func()
{
//...
}