Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 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
}