deprecated (C++)
(Microsoft-spezifisch) Mit den nachfolgenden Ausnahmen bietet die Deklaration deprecated dieselbe Funktionalität wie das deprecated-Pragma:
Mit der Deklaration deprecated können Sie bestimmte Arten von Funktionsüberladungen als veraltet angeben, wohingegen das Pragma auf alle überladenen Arten eines Funktionsnamens angewendet wird.
Mit der Deklaration deprecated können Sie eine Meldung angeben, die zur Kompilierzeit angezeigt wird. Der Text der Meldung kann von einem Makro stammen.
Makros können nur mit dem deprecated-Pragma als veraltet gekennzeichnet werden.
Trifft der Compiler auf einen veralteten Bezeichner, wird eine C4996-Warnung ausgelöst.
Beispiel
Im folgenden Beispiel wird gezeigt, wie Funktionen als veraltet gekennzeichnet werden und wie eine Meldung angegeben wird, die bei Verwendung einer veralteten Funktion zur Kompilierzeit angezeigt wird.
// deprecated.cpp
// compile with: /W3
#define MY_TEXT "function is deprecated"
void func1(void) {}
__declspec(deprecated) void func1(int) {}
__declspec(deprecated("** this is a deprecated function **")) void func2(int) {}
__declspec(deprecated(MY_TEXT)) void func3(int) {}
int main() {
func1();
func1(1); // C4996
func2(1); // C4996
func3(1); // C4996
}
Im folgenden Beispiel wird gezeigt, wie Klassen als veraltet gekennzeichnet werden und wie eine Meldung angegeben wird, die bei Verwendung einer veralteten Klasse zur Kompilierzeit angezeigt wird.
// deprecate_class.cpp
// compile with: /W3
struct __declspec(deprecated) X {
void f(){}
};
struct __declspec(deprecated("** X2 is deprecated **")) X2 {
void f(){}
};
int main() {
X x; // C4996
X2 x2; // C4996
}