Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
}