Supresywna generacja vtable w C++ może być wykonana w MSVC przy użyciu atrybutu __declspec(novtable)
. Jednak wydaje się, że dla kompilatora GNU C++ jest to there is no equivalent attribute. Faktem jest, że pozostawienie vtables dla czystych wirtualnych klas niepotrzebnie łączy w __cxa_abort()
i wielu innych i chcę tego uniknąć, ponieważ programuję dla systemu wbudowanego. Więc co powinienem zrobić?Jak wyłączyć generowanie vtable w C++ dla czystych klas wirtualnych za pomocą G ++?
struct ISomeInterface
{
virtual void Func() = 0;
};
class CSomeClass : public ISomeInterface
{
virtual void Func();
}
void CSomeClass::Func()
{
//...
}