deprecated
pragma
Vous deprecated
pragma 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 deprecated
pragma, consultez Attributs en C++.
Syntaxe
#pragma deprecated(
identifier1 [,
identificateur2 ... ])
Notes
Lorsque le compilateur rencontre un identificateur spécifié par un deprecated
pragma, 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 deprecated
pragma 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 deprecated
pragma. Le modificateur de déclaration spécifique à __declspec(deprecated)
Microsoft est également un meilleur choix dans de nombreux cas que le deprecated
pragma. 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
}