草庐IT

fno-rtti

全部标签

c++ - 为什么 'pure polymorphism' 比使用 RTTI 更可取?

我见过的几乎所有讨论这类事情的C++资源都告诉我,我应该更喜欢使用多态方法而不是使用RTTI(运行时类型识别)。总的来说,我会认真对待这种建议,并会尝试理解其中的基本原理——毕竟,C++是一头强大的野兽,难以深入理解。然而,对于这个特定的问题,我画了一个空白,想看看互联网可以提供什么样的建议。首先,让我总结一下到目前为止我学到的东西,列出了为什么RTTI被“认为有害”的常见原因:一些编译器不使用它/RTTI并不总是启用我真的不买这个论点。这就像说我不应该使用C++14特性,因为有些编译器不支持它。然而,没有人会阻止我使用C++14特性。大多数项目都会影响他们使用的编译器及其配置方式。甚

c++ - 为什么 'pure polymorphism' 比使用 RTTI 更可取?

我见过的几乎所有讨论这类事情的C++资源都告诉我,我应该更喜欢使用多态方法而不是使用RTTI(运行时类型识别)。总的来说,我会认真对待这种建议,并会尝试理解其中的基本原理——毕竟,C++是一头强大的野兽,难以深入理解。然而,对于这个特定的问题,我画了一个空白,想看看互联网可以提供什么样的建议。首先,让我总结一下到目前为止我学到的东西,列出了为什么RTTI被“认为有害”的常见原因:一些编译器不使用它/RTTI并不总是启用我真的不买这个论点。这就像说我不应该使用C++14特性,因为有些编译器不支持它。然而,没有人会阻止我使用C++14特性。大多数项目都会影响他们使用的编译器及其配置方式。甚

iphone - 尽管标记了文件 -fno-objc-arc,但 ARC 禁止在结构或联合中使用 Objective-C 对象

ARC禁止在结构或联合中使用Objective-C对象,尽管标记了文件-fno-objc-arc?为什么会这样?我假设如果你标记它-fno-objc-arc你没有这个限制。 最佳答案 如果您收到此消息,请尝试__unsafe_unretained。只有在结构中的对象未被保留时,它才是安全的。示例:如果您将OpenFeint与ARC一起使用,则OFBragDelegateStrings类会在结构中显示此错误。typedefstructOFBragDelegateStrings{NSString*prepopulatedText;NSS

iphone - 尽管标记了文件 -fno-objc-arc,但 ARC 禁止在结构或联合中使用 Objective-C 对象

ARC禁止在结构或联合中使用Objective-C对象,尽管标记了文件-fno-objc-arc?为什么会这样?我假设如果你标记它-fno-objc-arc你没有这个限制。 最佳答案 如果您收到此消息,请尝试__unsafe_unretained。只有在结构中的对象未被保留时,它才是安全的。示例:如果您将OpenFeint与ARC一起使用,则OFBragDelegateStrings类会在结构中显示此错误。typedefstructOFBragDelegateStrings{NSString*prepopulatedText;NSS

c++ - RTTI 有多贵?

我知道使用RTTI会造成资源损失,但影响有多大?我所看到的所有地方都只是说“RTTI很昂贵”,但它们实际上都没有提供任何基准或定量数据来保护内存、处理器时间或速度。那么,RTTI到底有多贵?我可能会在只有4MBRAM的嵌入式系统上使用它,因此每一位都很重要。编辑:AsperS.Lott'sanswer,如果我包括我实际在做的事情会更好。Iamusingaclasstopassindataofdifferentlengthsandthatcanperformdifferentactions,因此仅使用虚函数很难做到这一点。似乎使用一些dynamic_cast可以解决这个问题,允许不同的派

c++ - RTTI 有多贵?

我知道使用RTTI会造成资源损失,但影响有多大?我所看到的所有地方都只是说“RTTI很昂贵”,但它们实际上都没有提供任何基准或定量数据来保护内存、处理器时间或速度。那么,RTTI到底有多贵?我可能会在只有4MBRAM的嵌入式系统上使用它,因此每一位都很重要。编辑:AsperS.Lott'sanswer,如果我包括我实际在做的事情会更好。Iamusingaclasstopassindataofdifferentlengthsandthatcanperformdifferentactions,因此仅使用虚函数很难做到这一点。似乎使用一些dynamic_cast可以解决这个问题,允许不同的派