Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;RTTI是否始终在所有平台上工作?_C++_Rtti - Fatal编程技术网

C++ C++;RTTI是否始终在所有平台上工作?

C++ C++;RTTI是否始终在所有平台上工作?,c++,rtti,C++,Rtti,我隐约记得有人说过,运行时类型识别在某些特殊情况下可能不起作用。因此,我想问一下:C++ RTTI是否总是在默认设置的所有平台上工作,或者有可能无法实现它,或者需要在命令行参数中显式启用它? 不,不总是。< /P> 例如,尽管在那里您可以简单地启用它 这类C++实现技术上是不兼容的,RTTI或异常被禁用。 < P>特别是对于小型嵌入式系统RTTI来说是不可用的。另一个例子是8位AVR目标 原因很简单:RTTI需要更多的内存来存储信息本身。因此,对于小型嵌入式系统,它通常在默认情况下是关闭的,或者

我隐约记得有人说过,运行时类型识别在某些特殊情况下可能不起作用。因此,我想问一下:C++ RTTI是否总是在默认设置的所有平台上工作,或者有可能无法实现它,或者需要在命令行参数中显式启用它?

<强>不,不总是。< /P> 例如,尽管在那里您可以简单地启用它


<>这类C++实现技术上是不兼容的,RTTI或异常被禁用。

< P>特别是对于小型嵌入式系统RTTI来说是不可用的。另一个例子是8位AVR目标

原因很简单:RTTI需要更多的内存来存储信息本身。因此,对于小型嵌入式系统,它通常在默认情况下是关闭的,或者只是没有像avr gcc那样针对目标实现


<>通常在C++中保证你不支付你不使用的东西。但是RTTI是一个例子,如果您在为不需要RTTI的模块关闭它之前不使用它,那么您也需要更多内存。

一些针对嵌入式平台的工具链可能会默认禁用RTTI和异常处理。可能重复:@πάνταῥεῖ 不是真的,不……那么例外情况呢?是一样的吗?@Youda008:不完全一样。一些编译器可以在某些目标上生成代码,同时进行异常处理,而不会产生一般开销。但是,在某些环境中,异常处理会产生总体开销。