c++ RTTI在所有平台上都能工作吗?
Does C++ RTTI work always on all platforms?
我隐约记得有人说过,运行时类型标识在某些特殊情况下可能不起作用。因此,我想问:c++ RTTI是否总是在所有具有默认设置的平台上工作,或者是否存在可能无法实现或需要通过命令行参数显式启用它的情况?
不,不总是正确的。
例如,Android默认是关闭的,但你可以简单地启用它。
当RTTI或异常被禁用时,这样的c++实现在技术上是不兼容的。
尤其对于小型嵌入式系统,RTTI是不可用的。另一个例子是8位AVR目标。
原因很简单:RTTI需要更多的内存来存储信息本身。因此,对于小型嵌入式系统,默认情况下它通常是关闭的,或者只是没有为目标实现,如avr-gcc。通常在c++中保证不为不使用的东西付费。但是RTTI是一个例子,如果你不使用它,你也需要更多的内存,直到你关闭你的模块,不需要RTTI。
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 请告诉我在巴泽尔拥有多平台工作空间的更好方法
- thread_specific_pointer可以在哪些平台上工作而无需 boost::thread?
- 如何使用特定的工作目录运行/调试Netbeans平台应用程序
- Qt创作者平台游戏 - 无法让它工作(初学者与QGraphics)
- 无法在多平台 cocos2d-x 应用程序中工作
- 如何使JNI项目在所有JB、KK和LP下工作,这些项目仅在一个平台下编译
- C/C++ 动态链接如何在不同平台上工作
- c++ RTTI在所有平台上都能工作吗?