deprecated (C++)
(Specifické pro společnost Microsoft) S výjimkami uvedenými níže nabízí deklarace deprecated stejné funkce jako direktiva pragma deprecated:
Deklarace deprecated umožňuje určit konkrétní formy přetížení funkce jako zastaralé, kdežto forma direktivy pragma se vztahuje na všechny přetížené formy názvu funkce.
Deklarace deprecated umožňuje zadat zprávu, která se zobrazí při kompilaci.Text zprávy může být z makra.
Makra lze označit jako zastaralá pouze direktivou pragma deprecated.
Pokud kompilátor narazí na použití identifikátoru deprecated, je vyvoláno upozornění C4996.
Příklad
Následující příklad ukazuje, jak označit funkce jako zastaralé a jak určit zprávu, která se zobrazí při kompilaci, při použití zastaralé funkce.
// 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
}
Následující příklad ukazuje, jak označit třídy jako zastaralé a jak určit zprávu, která se zobrazí při kompilaci, při použití zastaralé třídy.
// 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
}