我依稀记得我听到有人说,在某些特殊情况下,运行时类型识别可能不起作用。因此,我想问一下:C ++ RTTI是否始终在所有具有默认设置的平台上工作,或者是否存在可能无法实现的情况或需要通过命令行参数明确启用它的情况?
答案 0 :(得分:2)
答案 1 :(得分:1)
特别是对于小型嵌入式系统,RTTI不可用。另一个例子是8位AVR目标。
原因很简单:RTTI需要更多内存来存储信息。因此,对于小型嵌入式系统,它通常在默认情况下是关闭的,或者就像使用avr-gcc而没有为目标实现。
通常在c ++中,您可以保证不为不使用的内容付费。但RTTI就是一个例子,如果你不使用它,你需要更多的内存,直到你为不需要RTTI的模块关闭它。