Is static_cast(…) compile-time or run-time?

前端 未结 2 1254
情歌与酒
情歌与酒 2020-12-16 13:47

Is static_cast(...) something that gets done at compile-time or run-time? I\'ve googled around but I got different answers.

Also, dynami

相关标签:
2条回答
  • 2020-12-16 14:16

    Compile time. In fact, the compiler doesn't even insert runtime code to check that the result is correct. The compiler does check that the conversion is statically possible, of course. Example: casting from a subclass to a superclass. If the conversion requires invoking a builtin or a casting function, they will be executed at runtime, of course, but there will be no type checking.

    0 讨论(0)
  • 2020-12-16 14:33

    Depends on what you are casting to what else. E.g. static_cast<std::string>("Hello") ends up calling std::string constructor.

    Off the top of my head, I can't think of any case where reinterpret_cast would need to generate actual machine instructions. It's just telling the compiler: take this bit pattern, and believe it to be a value this type.

    0 讨论(0)
提交回复
热议问题