我正在使用gcc的-fno-rtti
标志来编译没有运行时类型信息的C ++。
假设我没有使用dynamic_cast<>
或typeid()
,是否有任何可能导致我以后出现问题的内容?
答案 0 :(得分:35)
由于您的问题是针对GCC的,因此您应该仔细查阅您正在使用的版本的文档。 GCC 4.5.2的文档说明如下。从我的阅读中可以看出,如果你避免使用dynamic_cast和typeid,你应该没问题。也就是说,我没有-fno-rtti的亲身经历。也许您可能想详细说明为什么使用-fno-rtti。
-fno-RTTI
禁止生成有关每个类的信息 C ++使用的虚函数 运行时类型识别功能 (dynamic_cast
和typeid
)。如果你 不要使用该语言的那些部分, 你可以用这个来节省一些空间 旗。请注意异常处理 使用相同的信息,但它会 根据需要生成它。该dynamic_cast
运营商仍然可以 用于不需要的演员阵容 运行时类型信息,即强制转换 到void *
或明确的基础 类。
答案 1 :(得分:5)
我们使用没有rtti的gcc 5年没有特定问题(不使用dynamic_cast或typeid)