When should static_cast, dynamic_cast and reinterpret_cast be used?
stackoverflow.com