The answers to the following question describe the recommended usage of static_cast, dynamic_cast, and reinterpret_cast in C++:
When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?
Do you know of any tools that can be used to detect misuse of these kinds of cast? Would a static analysis tool like PC-Lint or Coverity Static Analysis do this?
The particular case that prompted this question was the inappropriate use of static_cast to downcast a pointer, which the compiler does not warn about. I'd like to detect this case using a tool, and not assume that developers will never make this mistake.
 
     
     
     
    