deprecated (C++)
Este tópico é sobre a declaração declspec preterida específica da Microsoft. Para obter mais informações sobre o atributo [[deprecated]]
do C++14 e as diretrizes sobre quando usar esse atributo em relação ao declspec ou pragma específico da Microsoft, consulte Atributos do padrão C++.
Com as exceções indicadas abaixo, a declaração deprecated
oferece a mesma funcionalidade que o pragma preterido:
A declaração
deprecated
permite especificar formas particulares de sobrecargas de função como preteridas, enquanto a forma pragma se aplica a todas as formas sobrecarregadas de um nome de função.A declaração
deprecated
permite especificar uma mensagem que será exibida em tempo de compilação. O texto da mensagem pode ser de uma macro.As macros somente podem ser marcadas como preteridas com o pragma
deprecated
.
Se o compilador encontrar o uso de um identificador preterido ou o atributo [[deprecated]]
padrão, um aviso C4996 será gerado.
Exemplos
O exemplo a seguir mostra como marcar funções como preteridas e como especificar uma mensagem que será exibida no tempo de compilação, quando a função preterida for 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 preteridas e como especificar uma mensagem que será exibida no tempo de compilação, quando a classe preterida for 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
}
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de