Is static_cast<T>(...)
something that gets done at compile-time or run-time? I've googled around but I got different answers.
Also, dynamic_cast<T>(...)
is obviously runtime - but what about reinterpret_cast<T>(...)
?
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.