Vous pourriez faire ça :
enum MyEnum {
firstvalue = 0,
secondvalue,
thirdvalue, // deprecated
fourthvalue
};
#pragma deprecated(thirdvalue)
alors, à chaque fois que la variable sera utilisée, le compilateur produira le résultat suivant :
warning C4995: 'thirdvalue': name was marked as #pragma deprecated
EDITAR
Cela semble un peu compliqué et je n'ai pas de compilateur GCC pour le confirmer (quelqu'un pourrait-il le faire pour moi ?) mais cela devrait fonctionner :
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
c'est une combinaison de ma réponse et de celle de MSalters