deprecated
pragma
deprecated
pragma 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 deprecated
pragma, vedere Attributi in C++.
Sintassi
#pragma deprecated(
identifier1 [,
identifier2 ... ])
Osservazioni:
Quando il compilatore rileva un identificatore specificato da , deprecated
pragmagenera 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 deprecated
pragma 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é .deprecated
pragma Il modificatore di dichiarazione specifico __declspec(deprecated)
di Microsoft è anche una scelta migliore in molti casi rispetto a deprecated
pragma. 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
}