deprecated pragma

Vous deprecatedpragma pouvez indiquer qu’une fonction, un type ou un autre identificateur ne peut plus être pris en charge dans une version ultérieure ou ne doit plus être utilisé.

Remarque

Pour plus d’informations sur l’attribut C++14 [[deprecated]] et des conseils sur l’utilisation de cet attribut au lieu du modificateur Microsoft __declspec(deprecated) ou du deprecatedpragma, consultez Attributs en C++.

Syntaxe

#pragma deprecated(identifier1 [ ,identificateur2 ... ] )

Notes

Lorsque le compilateur rencontre un identificateur spécifié par un deprecatedpragma, il émet l’avertissement du compilateur C4995.

Vous pouvez désapprouver des noms de macros. Placez le nom de la macro entre guillemets, sinon une expansion macro va se produire.

Étant donné que le deprecatedpragma travail sur tous les identificateurs correspondants et ne prend pas en compte les signatures, il n’est pas la meilleure option pour déprécier des versions spécifiques des fonctions surchargées. Tout nom de fonction correspondant placé dans l’étendue déclenche l’avertissement.

Nous vous recommandons d’utiliser l’attribut C++14 [[deprecated]] , le cas échéant, au lieu du deprecatedpragma. Le modificateur de déclaration spécifique à __declspec(deprecated) Microsoft est également un meilleur choix dans de nombreux cas que le deprecatedpragma. L’attribut et __declspec(deprecated) le [[deprecated]] modificateur vous permettent de spécifier l’état déconseillé pour des formes particulières de fonctions surchargées. L’avertissement de diagnostic apparaît uniquement sur les références à la fonction surchargée spécifique à laquelle l’attribut ou le modificateur s’applique.

Exemple

// pragma_directive_deprecated.cpp
// compile with: /W3
#include <stdio.h>
void func1(void) {
}

void func2(void) {
}

int main() {
   func1();
   func2();
   #pragma deprecated(func1, func2)
   func1();   // C4995
   func2();   // C4995
}

L'exemple suivant montre comment déconseiller une classe :

// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X {  // C4995
public:
   void f(){}
};

int main() {
   X x;   // C4995
}

Voir aussi

Directives pragma et les __pragma_Pragma mot clé