到以下問題的答案描述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