deprecated (C++)

 

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

(Используется только в системах Microsoft) За указанным ниже исключением объявление deprecated предлагает те же функциональные возможности, что и директива pragma deprecated.

  • Объявление deprecated позволяет указать определенные формы перегрузок функций как нерекомендуемые, тогда как форма директивы pragma применяется ко всем перегруженным формам имени функции.

  • Объявление deprecated позволяет указать сообщение, которое будет отображаться во время компиляции. Текст сообщения может быть взят из макроса.

  • Макросы могут отмечаться как нерекомендуемые только с помощью директивы pragma deprecated.

Если компилятор обнаруживает использование нерекомендуемого идентификатора, выдается предупреждение C4996.

В следующем примере показано, как отметить функции как нерекомендуемые и как указать сообщение, которое будет отображаться во время компиляции, если будет использоваться нерекомендуемая функция.

// 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  
}  

В следующем примере показано, как отметить классы как нерекомендуемые и как указать сообщение, которое будет отображаться во время компиляции, если будет использоваться нерекомендуемый класс.

// 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  
}  

__declspec
Ключевые слова в C++

Показ: