- dynamic_cast incurs runtime cost.
- static_cast, const_cast, reinterpret_cast are compile-time
- std::move() is compile time. An unconditional cast, according to Scott Meyers.
That’s for pointers or references.
Nonref variable cast is uncommon, unfamiliar and pretty much unnecessary, except for numeric types.
static_cast<std::string>("Hello") ends up calling