相关疑难解决方法(0)

在抽象基类上使用__declspec(novtable)会以任何方式影响RTTI吗?

或者,使用__declspec(novtable)是否还有其他已知的负面影响?我似乎无法找到任何问题的参考.

c++ rtti visual-studio visual-c++ compiler-specific

11
推荐指数
1
解决办法
5740
查看次数

如何使用G ++抑制纯虚拟类的C++ vtable生成?

可以使用该__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++ gcc virtual-functions g++ vtable

8
推荐指数
1
解决办法
1968
查看次数

禁用某些类的RTTI

我有一个C++翻译单元,我需要在其中禁用两个类的RTTI,但没有别的.有什么#pragma rtti(off)东西可以使用吗?

我只需要为该类禁用RTTI.我没有抛出或捕获或者dynamic_cast或者这个类的任何东西,所以我根本不需要RTTI.它的方法的实现当然需要使用RTTI编译,因为它们确实可以抛出异常,它只是我需要抑制的这一个typeinfo对象的生成.

c++ g++

5
推荐指数
1
解决办法
1318
查看次数