deprecated pragma

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
}

Zobacz też

Dyrektywy Pragma i __pragma słowa kluczowe i _Pragma