9

Czy istnieje sposób identyfikowania nieużywanych atrybutów/metod w programie Visual C++ 2008 Professional? Jeśli nie jest to możliwe domyślnie, rekomendacje narzędzi zewnętrznych są również bardzo doceniane.Jak znaleźć nieużywane atrybuty/metody w Visual C++ 2008

Dzięki,
Florian

Edit: nDepend działa tylko dla zespołów .NET. Szukam czegoś, co może być używane z natywnymi aplikacjami C++.

Odpowiedz

6

Wypróbuj PC-Lint. Jest całkiem niezły w znajdowaniu nadmiarowego kodu. Nie próbowałem jeszcze wersji 9. Wersja 8 zajmuje trochę czasu na skonfigurowanie. Wypróbuj interaktywną demonstrację online.

+0

To jest dokładnie to, czego szukałem. Istnieje VisualLint dodatek do Visual Studio, który integruje PC-Lint.Mniej kosztowne rozwiązanie byłoby w porządku, ale wydaje się, że nic tam nie ma. – fhe

-2

nDepend zrobi to, wraz z czyszczeniem domu i zabieraniem psa na spacer. Dostępna jest darmowa wersja nagware.

Poniższe oświadczenie kod języka zapytań będzie Ci listę niewykorzystanych metod

WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND 
    !IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND 
    !IsClassConstructor AND !IsFinalizer 
+1

Dzięki, ale nDepend wydaje się działać tylko z zespołami .NET. – fhe

0

Ja osobiście nie wykorzystali swoje narzędzia pracy (używam ich garnitur sterowania systemu Windows), ale wygląda na to DevExpress ma C++ refactor'er o nazwie Refactor! for C++. Nie od razu zauważyłem funkcje, których szukasz, ale może je mają?

0

Trudne jest to, że wiele funkcji w C++ musi istnieć, nawet jeśli nie są wywoływane. Zwiększenie szczególnie spowoduje to, ale nawet zwykły kod STL może to zrobić. Twój kod musi grać razem. Możesz zdefiniować ctor, ponieważ std :: vector formalnie tego wymaga. Ale jeśli nie stworzysz żadnego std :: vector, który faktycznie skopiuje T, twój ctor pozostanie nieużywany.

Nawet jeśli nie muszą, często istnieją dla bezpieczeństwa. Na przykład deklarowanie prywatnego konstruktora kopii może zapobiec niezamierzonemu kopiowaniu obiektu. Bez prywatnej deklaracji kompilator zdefiniowałby dla ciebie publicznego, zastępczego ctor. Czy to jest "nieużywane" i czy chcesz ich ostrzec?

0

PC-Lint jest bardzo mocny, ale trudny do utrzymania. Oczywiście, że całkiem dobrze opisuje C i C++, prawda?

Innym narzędziem, które moim zdaniem jest znakomite, jest Whole Assistant pomidora Visual Assist X, który integruje się bezpośrednio z IDE.

W wyszukiwaniu kodu bez odwołań występują pewne duże błędy w C++: szablony, wywołania zwrotne i procedury obsługi komunikatów mogą mieć krytyczne znaczenie dla projektu, ale nigdy nie są bezpośrednio wywoływane. Na przykład program obsługi wątku nie jest wywoływany bezpośrednio, ale jest parametrem podczas tworzenia nowego wątku. Komunikaty typu "On_buttonpress" w projektach MFC lub WTL będą również wyświetlane jako metody nie wywoływane.

Po ich znalezieniu można skonfigurować program PC-Lint, aby je zignorować, ale za pierwszym razem za dużo pracy.

+4

Czy możesz wyjaśnić, w jaki sposób program Visual Assist X pomaga znaleźć nieużywany kod? –

Powiązane problemy