Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Позволяет deprecatedpragma указать, что функция, тип или любой другой идентификатор больше не поддерживается в будущем выпуске или больше не следует использовать.
Примечание.
Сведения об атрибуте C++14 [[deprecated]] и рекомендации по использованию этого атрибута вместо модификатора Майкрософт __declspec(deprecated) или deprecatedpragmaатрибутов см. в разделе "Атрибуты" в C++.
Синтаксис
#pragma deprecated(identifier1 [,identifier2 ... ])
Замечания
Когда компилятор обнаруживает идентификатор, указанный идентификатором deprecatedpragma, он выдает предупреждение компилятора C4995.
Имена макросов можно объявить нерекомендуемыми. Поместите имя макроса в кавычки; в противном случае произойдет расширение макроса.
Так как работает deprecatedpragma над всеми соответствующими идентификаторами и не учитывает подписи, это не лучший вариант для отмены определенных версий перегруженных функций. Любое соответствующее имя функции, которое вставляется в область, активирует предупреждение.
Мы рекомендуем использовать атрибут C++14 [[deprecated]] , если это возможно, вместо атрибута deprecatedpragma. Модификатор объявления, определенный корпорацией __declspec(deprecated) Майкрософт, также является лучшим выбором во многих случаях, чем deprecatedpragma. Атрибут [[deprecated]] и __declspec(deprecated) модификатор позволяют указать устаревшее состояние для определенных форм перегруженных функций. Предупреждение о диагностике отображается только в ссылках на определенную перегруженную функцию, к к ней применяется атрибут или модификатор.
Пример
// 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
}
В следующем примере показано, как объявить класс устаревшим.
// pragma_directive_deprecated2.cpp
// compile with: /W3
#pragma deprecated(X)
class X { // C4995
public:
void f(){}
};
int main() {
X x; // C4995
}
См. также
директивы Pragma и ключевые слова __pragma и _Pragma