Vit*_*meo 12 c++ casting runtime compile-time c++11
是static_cast<T>(...)在编译时还是在运行时完成的事情?我用Google搜索了但我得到了不同的答案.
此外,dynamic_cast<T>(...)显然是运行时 - 但是呢reinterpret_cast<T>(...)?
取决于你正在投射什么.例如,static_cast<std::string>("Hello")最终调用std::string构造函数.
在我的脑海中,我想不出任何reinterpret_cast需要生成实际机器指令的情况.它只是告诉编译器:采用这种位模式,并认为它是这种类型的值.
编译时间。事实上,编译器甚至不会插入运行时代码来检查结果是否正确。当然,编译器确实会检查转换是否可以静态进行。示例:从子类转换到超类。如果转换需要调用内置函数或强制转换函数,它们当然会在运行时执行,但不会进行类型检查。
| 归档时间: |
|
| 查看次数: |
7105 次 |
| 最近记录: |