Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pozwala deprecatedpragma to wskazać, że funkcja, typ lub inny identyfikator mogą nie być już obsługiwane w przyszłej wersji lub nie powinny być już używane.
Uwaga
Aby uzyskać informacje o atrybucie C++14 [[deprecated]] i wskazówki dotyczące tego, kiedy należy użyć tego atrybutu zamiast modyfikatora firmy Microsoft __declspec(deprecated) lub deprecatedpragma, zobacz Atrybuty w języku C++.
Składnia
#pragma deprecated(identifier1 [,identyfikator2 ... ])
Uwagi
Gdy kompilator napotka identyfikator określony przez deprecatedpragmaelement , wystawia ostrzeżenie kompilatora C4995.
Możesz wycofać nazwy makr. Umieść nazwę makra w cudzysłowie lub zostanie wykonane rozszerzenie makra.
Ponieważ funkcja deprecatedpragma działa na wszystkich pasujących identyfikatorach i nie uwzględnia podpisów, nie jest to najlepsza opcja dla przestarzałych wersji przeciążonych funkcji. Każda zgodna nazwa funkcji, która jest wprowadzana do zakresu, wyzwala ostrzeżenie.
Zalecamy użycie atrybutu C++14 [[deprecated]] , jeśli jest to możliwe, zamiast deprecatedpragma. Modyfikator deklaracji specyficznej dla __declspec(deprecated) firmy Microsoft jest również lepszym wyborem w wielu przypadkach niż deprecatedpragma. Atrybut [[deprecated]] i __declspec(deprecated) modyfikator umożliwiają określenie stanu przestarzałego dla określonych form przeciążonych funkcji. Ostrzeżenie diagnostyczne pojawia się tylko w odwołaniach do określonej przeciążonej funkcji, do których ma zastosowanie atrybut lub modyfikator.
Przykład
// 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
}
W poniższym przykładzie pokazano, jak wycofać klasę:
// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X { // C4995
public:
void f(){}
};
int main() {
X x; // C4995
}