質問

Visual C ++ 2008 Professionalで未使用の属性/メソッドを識別する方法はありますか?デフォルトで不可能な場合は、サードパーティ製ツールの推奨も大歓迎です。

ありがとう、
フロリアン

編集: nDependは.NETアセンブリでのみ機能します。ネイティブC ++アプリケーションで使用できるものを探しています。

役に立ちましたか?

解決

PC-Lint をお試しください。冗長なコードを見つけるのは得意です。 バージョン9はまだ試していません。バージョン8の構成には時間がかかります。 オンラインインタラクティブデモをお試しください。

他のヒント

私は個人的に生産性ツールを使用していませんが(Windowsコントロールスーツを使用しています)、DevExpressにはリファクタリング! C ++の場合。あなたが探している機能をすぐに見つけられませんでしたが、多分彼らはそれを持っていますか?

Coverage Validatorは、未使用のC ++コードを表示できます(属性は表示できません)。動的に実行されるため、結果を取得するにはアプリを「実行」する必要があります。 http://successfulsoftware.net/2008/03/10/coverage-validator/

注意が必要なのは、呼び出されなくても、C ++の多くの関数が存在する必要があるということです。 Boostは特にこれを引き起こしますが、通常のSTLコードでさえこれを行うことができます。そして、あなたのコードは一緒に遊ぶ必要があります。 std :: vectorが正式に必要とするため、コピーアクターを定義できます。ただし、実際にTをコピーするstd :: vectorメンバーをインスタンス化しない場合、コピーctorは未使用のままになります。

必要がない場合でも、安全のために存在することがよくあります。たとえば、プライベートコピーコンストラクターを宣言すると、オブジェクトの意図しないコピーを防ぐことができます。 private宣言がなければ、コンパイラーはメンバー用のパブリックコピークターを定義します。さて、これは「未使用」ですか?そして、それらについて警告を受けたいですか?

PC-Lintは非常に強力ですが、傾けることは困難です。もちろん、それはCとC ++をかなりよく説明していますか?

優れていると思うもう1つのツールは、Whole Tomatoの Visual Assist X で、IDEに直接統合されています。

C ++には、参照されていないコードを検索するときに大きな落とし穴があります。テンプレート、コールバック、およびメッセージハンドラーはプロジェクトにとって重要ですが、直接呼び出されることはありません。たとえば、スレッドのハンドラーは直接呼び出されませんが、新しいスレッドを作成するときのパラメーターです。 " On_buttonpress" MFCまたはWTLプロジェクトのタイプメッセージも、呼び出されていないメソッドとして表示されます。

これらを見つけたら、これらを無視するように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帰属
所属していません StackOverflow
scroll top