deprecated (C++)
(Específica de Microsoft) Con las excepciones anotadas siguiente, la declaración de obsoleto proporciona la misma funcionalidad que la directiva de obsoleto :
La declaración de obsoleto permite especificar formularios determinados de sobrecargas de función como desusados, mientras que el formulario de pragma se aplica a todos los formularios sobrecargados de un nombre de función.
La declaración de obsoleto permite especificar un mensaje que muestra en tiempo de compilación.El texto del mensaje puede ser una macro.
Las macros se pueden marcar sólo como desusados con pragma de obsoleto .
Si el compilador encuentra el uso de un identificador obsoleto, se produce una advertencia de C4996 .
Ejemplo
El ejemplo siguiente se muestra cómo marcar funciones como desusados, y cómo especificar un mensaje que se mostrará en tiempo de compilación, cuando se utiliza la función desusada.
// deprecated.cpp
// compile with: /W3
#define MY_TEXT "function is deprecated"
void func1(void) {}
__declspec(deprecated) void func1(int) {}
__declspec(deprecated("** this is a deprecated function **")) void func2(int) {}
__declspec(deprecated(MY_TEXT)) void func3(int) {}
int main() {
func1();
func1(1); // C4996
func2(1); // C4996
func3(1); // C4996
}
El ejemplo siguiente se muestra cómo marcar clases como desusados, y cómo especificar un mensaje que se mostrará en tiempo de compilación, cuando se utiliza la clase desusada.
// deprecate_class.cpp
// compile with: /W3
struct __declspec(deprecated) X {
void f(){}
};
struct __declspec(deprecated("** X2 is deprecated **")) X2 {
void f(){}
};
int main() {
X x; // C4996
X2 x2; // C4996
}