我知道dynamic_cast有运行时检查,因此考虑更安全(可以在失败时返回空指针)但比static_cast慢.但两者之间的开销有多糟糕?
我是否应该考虑在循环中使用static_cast来解决常规大型项目中的性能问题?或者差异很小,只与特殊的实时程序有关.
Lig*_*ica 11
你有资料吗?
规则是:
static_cast时,你知道目标类型是有效的.dynamic_cast在您不确定时使用,并且您需要程序为您查找对象的运行时类型.就这么简单.所有其他考虑都是次要的.
取决于动态演员如何进行其班级安全/正确性检查.在我所描述的系统中,它可以很快变成非常大量的字符串比较.这是一个足够大的交易,我们几乎使用一个assert_cast样式系统,其中静态强制转换为性能而动态用于调试.