Condividi tramite


deprecated pragma

deprecatedpragma Consente di indicare che una funzione, un tipo o qualsiasi altro identificatore potrebbe non essere più supportato in una versione futura o non deve più essere usato.

Nota

Per informazioni sull'attributo C++14 [[deprecated]] e indicazioni su quando usare tale attributo anziché il modificatore Microsoft __declspec(deprecated) o deprecatedpragma, vedere Attributi in C++.

Sintassi

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

Osservazioni:

Quando il compilatore rileva un identificatore specificato da , deprecatedpragmagenera l'avviso del compilatore C4995.

È possibile deprecare i nomi di macro. Inserire il nome della macro tra virgolette, altrimenti l'espansione della macro viene eseguita.

Poiché funziona deprecatedpragma su tutti gli identificatori corrispondenti e non tiene conto delle firme, non è l'opzione migliore per deprecare versioni specifiche delle funzioni di overload. Qualsiasi nome di funzione corrispondente inserito nell'ambito attiva l'avviso.

È consigliabile usare l'attributo C++14[[deprecated]], se possibile, anziché .deprecatedpragma Il modificatore di dichiarazione specifico __declspec(deprecated) di Microsoft è anche una scelta migliore in molti casi rispetto a deprecatedpragma. L'attributo [[deprecated]] e __declspec(deprecated) il modificatore consentono di specificare lo stato deprecato per particolari forme di funzioni di overload. L'avviso di diagnostica viene visualizzato solo sui riferimenti alla funzione di overload specifica a cui si applica l'attributo o il modificatore.

Esempio

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

Nell'esempio seguente viene illustrato come deprecare una classe:

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

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

Vedi anche

Pragmadirettive e parole __pragma chiave e _Pragma