Como encontrar atributos não utilizados / métodos em Visual C ++ 2008
-
02-07-2019 - |
Pergunta
Existe uma maneira de identificar atributos não utilizados / métodos em Visual C ++ 2008 Professional? Se não for possível, por padrão, as recomendações de ferramentas 3-parte também são muito apreciados.
Obrigado,
Florian
Editar: NDepend só funciona para .NET assembléias. Eu estou procurando algo que pode ser usado com aplicações nativas C ++.
Solução
Tente PC-Lint . É muito bom em encontrar código redundante. Eu não tentei versão 9 ainda. Versão 8 faz demorar algum tempo para configurar. Experimente a demonstração interativa online.
Outras dicas
Eu não tenho usado pessoalmente suas ferramentas de produtividade (I usar seu terno de Controle do Windows), mas parece que DevExpress tem um C ++ refactor'er chamado Refactor! para C ++ . Eu não detectar imediatamente as características que você está procurando, mas talvez eles têm?
Cobertura Validador pode mostrar código não utilizado C ++ (mas não atributos). Fá-lo de forma dinâmica para que você tem que 'exersize' o aplicativo para obter os resultados: http://successfulsoftware.net/2008/03/10/coverage-validator/
O pouco complicado é que muitas funções em C ++ tem de existir, mesmo que eles não são chamados. Impulso especialmente fará isso, mas até mesmo o código STL regular pode fazer isso. E seu código tem que jogar junto. Você pode definir um ctor cópia, porque std :: vector requer formalmente. Mas se você não instanciar qualquer membro std :: vector que realmente faz copiar um T, o ctor cópia não vai ser utilizado.
Mesmo que eles não têm que, muitas vezes eles existem para a segurança. Por exemplo, declarando um construtor de cópia privada pode impedir que um objeto a partir de cópia não intencional. Sem a declaração privado, o compilador iria definir um público, memberwise copiar ctor para você. Agora, é este "não usado" e quer ser avisado sobre eles?
PC-Lint é muito poderoso, mas difícil de se inclinar. É claro que muito bem descreve C e C ++ não é?
Outra ferramenta que eu acho que é excelente é do tomate inteiro Visual Assist X que integra direito no IDE.
Há algumas grandes armadilhas em C ++ na busca de código unreferenced: modelos, retornos de chamada e manipuladores de mensagem pode ser crucial para o seu projeto, mas nunca são chamados diretamente. Por exemplo, o manipulador para um segmento não é chamado diretamente, mas é um parâmetro quando você cria um novo segmento. Os "On_buttonpress" mensagens do tipo em projetos MFC ou WTL também vai aparecer como métodos chamou-un.
Uma vez que você encontrá-los você pode configurar o PC-Lint ignorar estes, mas pela primeira vez através de seu um monte de trabalho.
NDepend vai fazê-lo, juntamente com a limpeza de sua casa e levar o cachorro para um passeio. Há uma versão nagware disponível gratuitamente.
A declaração a seguir código de linguagem de consulta você irá obter uma lista de métodos não utilizados
WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND
!IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND
!IsClassConstructor AND !IsFinalizer