Pregunta

¿Hay alguna manera de identificar atributos / métodos no utilizados en Visual C ++ 2008 Professional? Si no es posible por defecto, las recomendaciones de herramientas de terceros también son muy apreciadas.

Gracias,
Florian

Editar: nDepend solo funciona para ensamblados .NET. Estoy buscando algo que pueda usarse con aplicaciones nativas de C ++.

¿Fue útil?

Solución

Pruebe PC-Lint . Es bastante bueno para encontrar código redundante. No he probado la versión 9 todavía. La versión 8 toma algún tiempo para configurar. Prueba la demostración interactiva en línea.

Otros consejos

No he utilizado personalmente sus herramientas de productividad (uso su traje de control de ventanas), pero parece que DevExpress tiene un refactorizador de C ++ llamado Refactor! para C ++ . No detecté de inmediato las funciones que está buscando, pero ¿tal vez las tengan?

Validator de cobertura puede mostrar código C ++ no utilizado (pero no atributos). Lo hace dinámicamente, por lo que debe 'exersize' la aplicación para obtener los resultados: http://successfulsoftware.net/2008/03/10/coverage-validator/

El truco es que muchas funciones en C ++ tienen que existir, incluso si no se llaman. Boost especialmente causará esto, pero incluso el código STL normal puede hacer esto. Y su código tiene que seguir adelante. Puede definir un copiador porque std :: vector lo requiere formalmente. Pero si no crea una instancia de ningún miembro std :: vector que realmente copie una T, su ctor de copia permanecerá sin usar.

Incluso si no tienen que hacerlo, a menudo existen por seguridad. Por ejemplo, declarar un constructor de copia privada puede evitar que un objeto se copie involuntariamente. Sin la declaración privada, el compilador definiría un copiador público y miembro para usted. Ahora, ¿esto es "no utilizado"? y quieres que te avisen sobre ellos?

PC-Lint es muy potente, pero difícil de inclinar. Por supuesto, eso describe bastante bien C y C ++, ¿no?

Otra herramienta que creo que es excelente es el Visual Assist X de Whole Tomato, que se integra directamente en el IDE.

Al buscar código no referenciado, existen algunos grandes problemas en C ++: las plantillas, las devoluciones de llamada y los manejadores de mensajes pueden ser críticos para su proyecto, pero nunca se los llama directamente. Por ejemplo, el controlador de un subproceso no se llama directamente, pero es un parámetro cuando crea un nuevo subproceso. El " On_buttonpress " los mensajes de tipo en proyectos MFC o WTL también se mostrarán como métodos no llamados.

Una vez que los encuentre, puede configurar PC-Lint para ignorarlos, pero la primera vez es mucho trabajo.

nDepend lo hará, además de limpiar su casa y llevar al perro a pasear. Hay una versión de Nagware disponible de forma gratuita.

La siguiente instrucción de lenguaje de consulta de código le dará una lista de métodos no utilizados

 WARN IF Count > 0 IN SELECT TOP 10 METHODS WHERE MethodCa == 0 AND 
   !IsPublic AND !IsEntryPoint AND !IsExplicitInterfaceImpl AND 
   !IsClassConstructor AND !IsFinalizer
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top