[英]Evaluate instance methods in Visual Studio 2008 C++ Express
[英]How to find unused attributes/methods in Visual C++ 2008
有沒有辦法在Visual C ++ 2008 Professional中識別未使用的屬性/方法? 如果默認情況下不可行,那么第三方工具的推薦也非常受歡迎。
謝謝,
弗洛里安
編輯: nDepend僅適用於.NET程序集。 我正在尋找可以與本機C ++應用程序一起使用的東西。
試試PC-Lint 。 它非常適合查找冗余代碼。 我還沒有嘗試過版本9。 版本8確實需要一些時間來配置。 嘗試在線互動演示。
棘手的一點是C ++中的許多函數必須存在,即使它們沒有被調用。 特別是Boost會導致這種情況,但即使是常規的STL代碼也能做到這一點。 你的代碼必須發揮作用。 您可以定義一個副本ctor,因為std :: vector正式要求它。 但是,如果您沒有實例化任何實際復制T的std :: vector成員,則您的副本ctor將保持未使用狀態。
即使他們不必,他們也經常為了安全而存在。 例如,聲明私有拷貝構造函數可以防止對象意外復制。 如果沒有私有聲明,編譯器將為您定義一個公共的成員復制ctor。 現在,這是“未使用”,你想要被警告嗎?
Coverage Validator可以顯示未使用的C ++代碼(但不顯示屬性)。 它是動態的,所以你必須'exersize'應用程序才能得到結果: http : //successfulsoftware.net/2008/03/10/coverage-validator/
PC-Lint非常強大,但很難瘦。 當然那很好描述C和C ++不是嗎?
我認為非常出色的另一個工具是Whole Tomato的Visual Assist X ,它集成到IDE中。
在搜索未引用的代碼時,C ++中存在一些重大問題:模板,回調和消息處理程序可能對您的項目至關重要,但從不直接調用。 例如,線程的處理程序不是直接調用的,而是在創建新線程時的參數。 MFC或WTL項目中的“On_buttonpress”類型消息也將顯示為未調用的方法。
一旦找到它們,您可以配置PC-Lint忽略這些,但第一次通過它的大量工作。
nDepend會這樣做,同時打掃房子,帶狗散步。 有一個nagware版本免費提供。
以下代碼查詢語言語句將為您提供未使用方法的列表
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND
!IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND
!IsClassConstructor AND !IsFinalizer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.