deprecated pragma

Auf deprecatedpragma diese Weise können Sie angeben, dass eine Funktion, ein Typ oder ein anderer Bezeichner in einer zukünftigen Version möglicherweise nicht mehr unterstützt wird oder nicht mehr verwendet werden soll.

Hinweis

Informationen zum C++14-Attribut [[deprecated]] und Anleitungen zur Verwendung dieses Attributs anstelle des Microsoft-Modifizierers oder despragmadeprecated Microsoft-Modifizierers __declspec(deprecated) finden Sie unter Attribute in C++.

Syntax

#pragma deprecated(Bezeichner1 [ ,Bezeichner2 ... ] )

Hinweise

Wenn der Compiler auf einen durch einen deprecatedpragmaBezeichner angegebenen Bezeichner stößt, gibt er die Compilerwarnung C4995 aus.

Sie können Makronamen als veraltet deklarieren. Platzieren Sie den Makronamen in Anführungszeichen; andernfalls tritt eine Makroerweiterung auf.

Da dies deprecatedpragma bei allen übereinstimmenden Bezeichnern funktioniert und keine Signaturen berücksichtigt, ist es nicht die beste Option zum Veraltet bestimmter Versionen von überladenen Funktionen. Jeder übereinstimmende Funktionsname, der in den Bereich gebracht wird, löst die Warnung aus.

Es wird empfohlen, das C++14-Attribut [[deprecated]] nach Möglichkeit anstelle des deprecatedpragma. Der microsoftspezifische __declspec(deprecated) Deklarationsmodifizierer ist in vielen Fällen auch eine bessere Wahl als der deprecatedpragma. Mit dem [[deprecated]] Attribut und __declspec(deprecated) Modifizierer können Sie den veralteten Status für bestimmte Formen von überladenen Funktionen angeben. Die Diagnosewarnung wird nur für Verweise auf die spezifische überladene Funktion angezeigt, auf die das Attribut oder Modifizierer angewendet wird.

Beispiel

// 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
}

Das folgende Beispiel zeigt, wie Sie eine Klasse als veraltet deklarieren:

// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X {  // C4995
public:
   void f(){}
};

int main() {
   X x;   // C4995
}

Siehe auch

Pragma-Direktiven und die __pragma und _Pragma Schlüsselwort (keyword)