Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Позволяет deprecated
pragma указать, что функция, тип или любой другой идентификатор больше не поддерживается в будущем выпуске или больше не следует использовать.
Примечание.
Сведения об атрибуте C++14 [[deprecated]]
и рекомендации по использованию этого атрибута вместо модификатора Майкрософт __declspec(deprecated)
или deprecated
pragmaатрибутов см. в разделе "Атрибуты" в C++.
Синтаксис
#pragma deprecated(
identifier1 [,
identifier2 ... ])
Замечания
Когда компилятор обнаруживает идентификатор, указанный идентификатором deprecated
pragma, он выдает предупреждение компилятора C4995.
Имена макросов можно объявить нерекомендуемыми. Поместите имя макроса в кавычки; в противном случае произойдет расширение макроса.
Так как работает deprecated
pragma над всеми соответствующими идентификаторами и не учитывает подписи, это не лучший вариант для отмены определенных версий перегруженных функций. Любое соответствующее имя функции, которое вставляется в область, активирует предупреждение.
Мы рекомендуем использовать атрибут C++14 [[deprecated]]
, если это возможно, вместо атрибута deprecated
pragma. Модификатор объявления, определенный корпорацией __declspec(deprecated)
Майкрософт, также является лучшим выбором во многих случаях, чем deprecated
pragma. Атрибут [[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