deprecated (C++)
(Específica da Microsoft) Com as exceções mencionadas abaixo, o preterido declaração oferece a mesma funcionalidade que o preterido pragma:
O preterido declaração permite especificar determinados formulários das sobrecargas de função como obsoletas, enquanto o formulário pragma aplica a todas as formas sobrecarregadas de um nome de função.
O preterido declaração permite que você especificar uma mensagem que será exibido em tempo de compilação.O texto da mensagem pode ser a partir de uma macro.
Macros só podem ser sinalizadas como desaprovado com o preterido pragma.
Se o compilador encontra o uso de um identificador de reprovados, um C4996 aviso é lançado.
Exemplo
O exemplo a seguir mostra como marcar funções preteridas e como especificar uma mensagem que será exibida em tempo de compilação, quando a função preterida é usada.
// 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
}
O exemplo a seguir mostra como marcar classes como desaprovado e como especificar uma mensagem que será exibida em tempo de compilação, quando a classe preterida é usada.
// 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
}