或者,使用__declspec(novtable)是否还有其他已知的负面影响?我似乎无法找到任何问题的参考.
可以使用该__declspec(novtable)属性在MSVC中完成抑制C++ vtable生成.但是,似乎GNU C++编译器没有等效属性.事实上,将vtable留给纯虚拟类不必要地链接到__cxa_abort()许多其他类,我想避免这种情况发生,因为我正在为嵌入式系统编程.所以我该怎么做?
struct ISomeInterface
{
virtual void Func() = 0;
};
class CSomeClass : public ISomeInterface
{
virtual void Func();
}
void CSomeClass::Func()
{
//...
}
Run Code Online (Sandbox Code Playgroud) 我有一个C++翻译单元,我需要在其中禁用两个类的RTTI,但没有别的.有什么#pragma rtti(off)东西可以使用吗?
我只需要为该类禁用RTTI.我没有抛出或捕获或者dynamic_cast或者这个类的任何东西,所以我根本不需要RTTI.它的方法的实现当然需要使用RTTI编译,因为它们确实可以抛出异常,它只是我需要抑制的这一个typeinfo对象的生成.