Compartir a través de


en desuso (C++)

Este tema trata sobre la declaración declspec específica de Microsoft en desuso. Para obtener información sobre el atributo C++14 [[deprecated]] y guía sobre cuándo usar ese atributo frente a la declspec o pragma específica de Microsoft, vea Atributos estándar de C++.

Con las excepciones que se indican a continuación, la declaración deprecated proporciona la misma funcionalidad que la directiva pragma en desuso:

  • La declaración deprecated en desuso permite especificar formas determinadas de sobrecargas de función como en desuso, mientras que la forma pragma se aplica a todas las formas sobrecargadas de un nombre de función.

  • La declaración deprecated permite especificar un mensaje que se mostrará en el tiempo de compilación. El texto del mensaje puede proceder de una macro.

  • Las macros solo se pueden marcar como en desuso con la pragma deprecated.

Si el compilador encuentra el uso de un identificador en desuso o el atributo [[deprecated]] estándar, se produce una advertencia C4996.

Ejemplos

En el ejemplo siguiente se muestra cómo marcar funciones como desusadas y cómo especificar un mensaje que se mostrará, en tiempo de compilación, cuando se use 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
}

En el ejemplo siguiente se muestra cómo marcar clases como desusadas y cómo especificar un mensaje que se mostrará, en tiempo de compilación, cuando se use 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
}

Consulte también

__declspec
Palabras clave