Frage

Gibt es eine Möglichkeit ungenutzt Attribute / Methoden in Visual C ++ 2008 Professional zu identifizieren? Wenn es standardmäßig nicht möglich, Empfehlungen von 3rd-Party-Tools sind ebenfalls sehr geschätzt.

Danke,
Florian

Edit: NDepend funktioniert nur für .NET-Assemblies. Ich bin auf der Suche nach etwas, das mit native C ++ Anwendungen verwendet werden kann.

War es hilfreich?

Lösung

Versuchen Sie PC-Lint . Es ist ziemlich gut bei redundanten Code zu finden. Ich habe nicht versucht, die Version 9 vor. Version 8 hat einige Zeit in Anspruch nehmen zu konfigurieren. Versuchen Sie, die interaktive Online-Demo.

Andere Tipps

Ich habe persönlich nicht ihre Produktivitäts-Tools verwendet (I ihre Fenster Steuer Anzug verwenden), aber es sieht aus wie DevExpress eine C ++ refactor'er genannt hat? Umgestalten! für C ++ . Ich habe nicht sofort die Eigenschaften erkennen, die Sie suchen, aber vielleicht haben sie es?

Coverage Validator kann nicht verwendeten C ++ Code anzeigen (aber nicht Attribute). Er tut es dynamisch, so dass Sie auf ‚exersize‘ der App haben die Ergebnisse zu erhalten: http://successfulsoftware.net/2008/03/10/coverage-validator/

Der schwierige Bit ist, dass viele Funktionen in C ++ existieren müssen, auch wenn sie aufgerufen werden nicht. Boost besonders wird dies dazu führen, sondern auch der regelmäßige AWL-Code kann dies tun. Und Ihr Code hat mitzuspielen. Sie können eine Kopie Ctor definieren, da std :: vector erfordert es offiziell. Aber wenn Sie instanziiert keine std :: vector Element, das eigentlich ein T kopiert, Ihre Kopie Ctor bleibt ungenutzt.

Auch wenn sie nicht auf, sie existieren oft für die Sicherheit. Zum Beispiel kann eine private Kopie Konstruktor deklariert ein Objekt aus unbeabsichtigtem Kopieren verhindern. Ohne die private Erklärung würde der Compiler ein öffentliches, element Kopie Ctor für Sie definiert. Nun, dies ist „ungenutzt“ und tun Sie sie gewarnt werden?

PC-Lint ist sehr leistungsfähig, aber schwer zu lehnen. Natürlich, die ziemlich gut C und C ++, nicht wahr beschreibt?

Ein weiteres Werkzeug, das ich denke, ausgezeichnet ist Whole Tomato Der Visual Assist X , das direkt in die IDE integriert.

Es gibt einige große gotchas in C ++, wenn Sie nicht referenzierte Code suchen: Vorlagen, Rückrufe und Nachrichten-Handler kann zu einem Projekt von entscheidender Bedeutung sein, sind aber nie direkt genannt. Zum Beispiel wird der Handler für einen Thread nicht direkt aufgerufen, sondern ist ein Parameter, wenn Sie einen neuen Thread erstellen. Die „On_buttonpress“ Typ Nachrichten in MFC oder WTL Projekten werden auch als un genannten Methoden zeigen.

Wenn Sie sie finden Sie können PC-Lint konfigurieren diese zu ignorieren, aber das erste Mal durch seine viel Arbeit.

NDepend wird es tun, zusammen mit Ihrem Hause und nehmen den Hund für einen Spaziergang zu reinigen. Es gibt eine nagware Version kostenlos zur Verfügung.

Der folgende Code-Abfragesprache-Anweisung finden Sie eine Liste von nicht verwendeten Methoden erhalten

 WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND 
   !IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND 
   !IsClassConstructor AND !IsFinalizer
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top