Partilhar via


deprecated pragma

O deprecatedpragma permite indicar que uma função, tipo ou qualquer outro identificador pode não ser mais suportado em uma versão futura ou não deve mais ser usado.

Observação

Para obter informações sobre o atributo C++14 [[deprecated]] e orientação sobre quando usar esse atributo em vez do modificador do Microsoft __declspec(deprecated) ou do deprecatedpragma, consulte Attributes in C++.

Sintaxe

#pragma deprecated( identifier1 [ ,identifier2 ... ] )

Comentários

Quando o compilador encontra um identificador especificado por um deprecatedpragma, ele emite um aviso do compilador C4995.

Você pode depreciar nomes de macros. Coloque o nome da macro entre aspas ou ocorrerá expansão da macro.

Como o deprecatedpragma funciona em todos os identificadores correspondentes e não leva as assinaturas em consideração, ele não é a melhor opção para substituir versões específicas de funções sobrecarregadas. Qualquer nome de função correspondente que seja trazido para o escopo dispara o aviso.

Recomendamos que você use o atributo C++14 [[deprecated]], quando possível, em vez do deprecatedpragma. O modificador de declaração de __declspec(deprecated) específico da Microsoft também é uma escolha melhor em muitos casos do que o deprecatedpragma. O atributo [[deprecated]] e o modificador __declspec(deprecated) permitem especificar o status preterido para formas específicas de funções sobrecarregadas. O aviso de diagnóstico só aparece em referências à função sobrecarregada específica à qual o atributo ou modificador se aplica.

Exemplo

// pragma_directive_deprecated.cpp
// compile with: /W3
#include <stdio.h>
void func1(void) {
}

void func2(void) {
}

int main() {
   func1();
   func2();
   #pragma deprecated(func1, func2)
   func1();   // C4995
   func2();   // C4995
}

O exemplo a seguir mostra como depreciar uma classe:

// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X {  // C4995
public:
   void f(){}
};

int main() {
   X x;   // C4995
}

Ver também

diretivas Pragma e as palavras-chave __pragma e _Pragma