usted puede hacer esto:
enum MyEnum {
firstvalue = 0,
secondvalue,
thirdvalue, // deprecated
fourthvalue
};
#pragma deprecated(thirdvalue)
continuación, cuando cada vez que se utiliza la variable, el compilador de salida lo siguiente:
warning C4995: 'thirdvalue': name was marked as #pragma deprecated
EDITAR
Esto parece un poco hacky y yo no tengo un compilador de GCC para confirmar (¿alguien podría hacer eso por mí?) pero debería funcionar:
enum MyEnum {
firstvalue = 0,
secondvalue,
#ifdef _MSC_VER
thirdvalue,
#endif
fourthvalue = secondvalue + 2
};
#ifdef __GNUC__
__attribute__ ((deprecated)) const MyEnum thirdvalue = MyEnum(secondvalue + 1);
#elif defined _MSC_VER
#pragma deprecated(thirdvalue)
#endif
Es una combinación de mi respuesta y respuesta MSalters'
¿Qué quieres que suceda? Simplemente renómbrelo, y el compilador emitirá un error ... – Lindydancer
@Lindydancer: Pero eso va un poco más allá de la depreciación, ¿no es así? Creo que el objetivo es permitir la compilación del código existente, pero emitir una advertencia sobre el recurso en desuso. –
@Lindydancer: si hubiera sido suficiente, no habría sido necesario desaprobar las clases, funciones, tipos tampoco ... – moala