8

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

ありがとう、
フロリアン

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

4

6 に答える 6

6

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

于 2008-09-30T11:28:52.833 に答える
0

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

于 2008-09-30T09:18:56.187 に答える
0

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

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

于 2008-09-30T13:21:26.883 に答える
0

カバレッジ バリデーターは、未使用の C++ コードを表示できます (ただし、属性は表示できません)。それは動的に行われるため、結果を得るにはアプリを「エクササイズ」する必要があります: http://successfulsoftware.net/2008/03/10/coverage-validator/

于 2008-09-30T13:22:36.147 に答える
-2

nDependは、家の掃除や犬の散歩に加えて、それを行います。無料で利用できる nagware バージョンがあります。

次のコード クエリ言語ステートメントは、未使用のメソッドのリストを取得します。

 WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND 
   !IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND 
   !IsClassConstructor AND !IsFinalizer
于 2008-09-29T14:22:30.350 に答える