Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pozwala deprecated
pragma 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 deprecated
pragma, zobacz Atrybuty w języku C++.
Składnia
#pragma deprecated(
identifier1 [,
identyfikator2 ... ])
Uwagi
Gdy kompilator napotka identyfikator określony przez deprecated
pragmaelement , wystawia ostrzeżenie kompilatora C4995.
Możesz wycofać nazwy makr. Umieść nazwę makra w cudzysłowie lub zostanie wykonane rozszerzenie makra.
Ponieważ funkcja deprecated
pragma 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 deprecated
pragma. Modyfikator deklaracji specyficznej dla __declspec(deprecated)
firmy Microsoft jest również lepszym wyborem w wielu przypadkach niż deprecated
pragma. 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
}