到以下问题的答案描述static_cast
,dynamic_cast
和reinterpret_cast
推荐使用在C++:是否有任何C++工具检测到static_cast,dynamic_cast和reinterpret_cast的滥用?
When should static_cast, dynamic_cast, const_cast and reinterpret_cast be used?
你知道的,可用于检测这类演员的误用任何工具?像PC-Lint或Coverity Static Analysis这样的静态分析工具能做到这一点吗?
提示此问题的特定情况是使用static_cast
不恰当地使用downcast指针,编译器不警告。我想用工具来检测这种情况,而不是假设开发者永远不会犯这个错误。
使用static_cast向下转换指针很好,如果您知道它是正在转换的正确子类,建议使用。 – 2010-03-17 21:16:04
这是static_cast的适当使用。我正在寻找一种能够检测到不适当使用的工具(这是我投射到的错误的子类)。 – chrisp451 2010-03-17 21:27:11
问题在于'static_cast'在代码中查看可用信息的特定情况(您可以从设计中的不变量知道即使代码中不存在该信息,该转换也是正确的) – 2010-03-17 22:45:19