deprecated (C++)

Cette rubrique concerne la déclaration declspec déconseillée spécifique à Microsoft. Pour plus d’informations sur l’attribut C++14 [[deprecated]] et des conseils sur l’utilisation de cet attribut par rapport aux attributs declspec ou pragma spécifiques à Microsoft, consultez attributs standard C++.

Avec les exceptions indiquées ci-dessous, la deprecated déclaration offre les mêmes fonctionnalités que le pragma déconseillé :

  • La deprecated déclaration vous permet de spécifier des formes particulières de surcharges de fonction comme déconseillées, tandis que le formulaire pragma s’applique à toutes les formes surchargées d’un nom de fonction.

  • La deprecated déclaration vous permet de spécifier un message qui s’affiche au moment de la compilation. Le texte du message peut être issu d'une macro.

  • Les macros peuvent uniquement être marquées comme déconseillées avec le deprecated pragma.

Si le compilateur rencontre l’utilisation d’un identificateur déconseillé ou de l’attribut standard [[deprecated]] , un avertissement C4996 est déclenché.

Exemples

L'exemple suivant montre comment marquer des fonctions comme déconseillés, et comment spécifier un message à afficher au moment de la compilation, lorsque la fonction déconseillée est utilisée.

// 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
}

L'exemple suivant montre comment marquer des classes comme déconseillés, et comment spécifier un message à afficher au moment de la compilation, lorsque la classe déconseillée est utilisée.

// 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
}

Voir aussi

__declspec
Mots clés