gpt4 book ai didi

c++ - 如何在 Visual Studio 2008 中关闭 RTTI

转载 作者:太空狗 更新时间:2023-10-29 20:06:39 24 4
gpt4 key购买 nike

我不确定其他版本,但是,在 VS 2008 中,即使禁用了 RTTI,我也可以通过调用类型上的 typeid(T).name() 来查询信息。它适用于所有类型,包括内部和用户创建的。

我们的项目禁用了 RTTI,但我惊讶地发现它仍然有效。这是 Visual Studio 错误还是 /GR- 标志不足以禁用它?这是否属于未定义行为的范畴?如果不是错误,我该如何真正将其关闭?

最佳答案

您是否可能在编译时类型已知的表达式上使用了 typeid?如果是这样,您将完全绕过 RTTI 的“运行时”方面。来自 typeid 的 Microsoft 文档:

If the expression is neither a pointer nor a reference to a base class of the object, the result is a type_info reference representing the static type of the expression. The static type of an expression refers to the type of an expression as it is known at compile time. Execution semantics are ignored when evaluating the static type of an expression.

关于c++ - 如何在 Visual Studio 2008 中关闭 RTTI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6865921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com