C++ C++;测试运行时类型信息

C++ C++;测试运行时类型信息,c++,C++,是否可以只检查RTTI而不需要捕获异常的开销?dynamic_cast只会抛出一个异常,我只需要看看在一段高度使用的代码中是否存在RTTI,在这段代码中,异常将是一个巨大的问题…您需要检查使用dynamic_cast创建的指针是否为NULL。如果它等于NULL,则强制转换无效。如果没有,则转换工作正常,不会抛出异常。dynamic\u对指针类型的转换不会抛出异常。但我仍然不确定你想做什么。你说的“有RTTI”是什么意思?一段说明性的示例代码会很好,它确实会在指针上抛出一个异常,比如char*。。

是否可以只检查RTTI而不需要捕获异常的开销?dynamic_cast只会抛出一个异常,我只需要看看在一段高度使用的代码中是否存在RTTI,在这段代码中,异常将是一个巨大的问题…

您需要检查使用dynamic_cast创建的指针是否为NULL。如果它等于NULL,则强制转换无效。如果没有,则转换工作正常,不会抛出异常。

dynamic\u对指针类型的转换不会抛出异常。但我仍然不确定你想做什么。你说的“有RTTI”是什么意思?一段说明性的示例代码会很好,它确实会在指针上抛出一个异常,比如char*。。。基本上,我只想测试字符串格式化函数是char*还是带有RTTI的真实类类型。不幸的是,该类型正在传递给一个函数,因此typeid无法工作…所讨论的代码是一个模板?不,它是一个可变长度参数函数,因此类型未知。我想这真的不可能有效地做到。