[[deprecated]]
void foo(){};
int main()
{
foo();
}
Приведенный выше код выдает следующую ошибку в VS2017:
1>------ Build started: Project: test, Configuration: Debug Win32 ------
1>deprecation.cpp
1>d:\source\deprecation.cpp(6): error C4996: 'foo': was declared deprecated
1>d:\source\deprecation.cpp(2): note: see declaration of 'foo'
1>Done building project "test.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
К сожалению, поиск этой ошибки приводит к появлению множества «как использовать [[устаревшее]]» и «какие функцииустарели?вопросы стиля.
Кажется, что каждый ресурс, который я проверяю, предполагает, что использование [[deprecated]] должно быть так же просто, как написано выше - ожидается ошибка / предупреждение компилятора, но не ошибка сборки.Закомментирование строки [[не рекомендуется]] приводит к успешной сборке.
Проект ориентирован на Windows SDK версии 10.0.17763.0.
cl.exe версия 19.16.27027.
Я упустил что-то очевидное при использовании [[устарело]], или VS2017 находит способ его сломать?