przestarzałe (C++)
(Specyficzne dla firmy Microsoft) Z wyjątkami wskazanymi poniżej, deklaracja deprecated oferuje taką samą funkcjonalność jak dyrektywa depricated:
Deklaracja deprecated pozwala na określenie szczególnych rodzajów przeciążeń funkcji jako przestarzałe, gdy dyrektywa ma zastosowanie do wszystkich przeciążonych form nazwy funkcji.
Deklaracja deprecated pozwala określić komunikat, który będzie wyświetlany w czasie kompilacji.Tekst wiadomości może pochodzić z makra.
Makra mogą być zaznaczone jako przestarzałe tylko za pomocą dyrektywy deprecated.
Jeśli kompilator napotka użycie przestarzałego identyfikatora, ostrzeżenie C4996 jest zgłaszane.
Przykład
Poniższy przykład pokazuje, jak oznaczać funkcje jako przestarzałe oraz jak określić komunikat, który będzie wyświetlany w czasie kompilacji, gdy przestarzała funkcja jest używana.
// 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
}
Poniższy przykład pokazuje, jak oznaczać klasy jako przestarzałe oraz jak określić komunikat, który będzie wyświetlany w czasie kompilacji, gdy przestarzała klasa jest używana.
// 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
}