deprecated pragma

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

Observação

Para informações sobre o atributo C++14 [[deprecated]] e diretrizes sobre quando usar esse atributo em vez do modificador da Microsoft __declspec(deprecated) ou o deprecatedpragma, confira Atributos em C++.

Sintaxe

#pragma deprecated(identificador1 [ , identificador2 ... ])

Comentários

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

Você pode preterir nomes de macro. Coloque o nome da macro entre aspas. Caso contrário, haverá uma expansão na macro.

Como deprecatedpragma funciona em todos os identificadores correspondentes e não leva em conta as assinaturas, não é a melhor opção para substituir versões específicas de funções sobrecarregadas. Qualquer nome de função correspondente que é colocado no 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 específico __declspec(deprecated) da Microsoft também é, em muitos casos, uma opção melhor do que deprecatedpragma. O atributo [[deprecated]] e o modificador __declspec(deprecated) permite especificar o status preterido de formatos específicos de funções sobrecarregadas. O aviso de diagnóstico aparece apenas 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 preterir uma classe:

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

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

Confira também

Pragmadiretivas e as __pragma palavras-chave e _Pragma