2010-07-07 16 views
5

Estoy tratando de encontrar todos los métodos no utilizados de mi proyecto. Tengo formas de búsqueda para hacer esto, pero la respuesta más convincente que encontré fue declarar todas mis funciones como obsoletas, y eliminar este atributo hasta que no recibí ninguna advertencia.Marcar como obsoleto

El problema es que no sé cómo declarar una función como obsoleta. Cuando escribo:

[Obsolete] 
    class Vector3{ 

    }; 

VS2005 me dice que obsoleto no existe. ¿Alguna sugerencia?

+0

Qué quiere decir sin uso como en "No se hace referencia en el código" o no utilizados, como en "No se utiliza durante la ejecución típica" – DevinB

+0

ambos. Puede haber un código no utilizado (no referenciado en el código) que haga referencia a otros métodos (estos son referenciados, pero nunca ejecutados). – Sara

+5

¿Es esto realmente C++? –

Respuesta

2

No sé el resto de su código fuente, pero usted debe tener una

using System; 

en la parte superior.

+0

Pruebe '[System.ObsoleteAttribute]' para ver si eso lo soluciona. –

+0

Ahora dice que el sistema no existe. – Sara

+3

Eso es C#. El OP está usando C++. – Default

8

En gcc, usa __attribute__ ((deprecated)) para etiquetar las funciones como obsoletas.

Parece que __declspec(deprecated) puede hacer el truco en VS. También deberá habilitar el nivel de advertencia 1 para que genere un diagnóstico.

Ver http://msdn.microsoft.com/en-us/library/044swk7y%28VS.80%29.aspx

+0

¡Genial! eso hizo el truco. – Sara

+1

La manera más fácil es agregar un solo '# si está definido (_MSCVER) #define DEEPECATED __declspec (obsoleto) #elif defined (__ GNUC__) #define DEPRECATED __attribute__ ((obsoleto)) # endif', por lo que puede escribir' DEEPECATED class Vector3 '. – MSalters

Cuestiones relacionadas