Обнаружение предупреждения в MSVC 2017 - PullRequest
0 голосов
/ 04 июля 2019

Недавно мы обнаружили, что одна из наших внешних библиотек (DLib) подавляет предупреждения на глобальном уровне. Написание следующего кода дает нам предупреждение:

[[deprecated]] int findDeprecated() { return 42; }
int test = findDeprecated();

Включение заголовка dlib подавляет предупреждение:

#include <dlib/matrix.h>
[[deprecated]] int findDeprecated() { return 42; }
int test = findDeprecated();

Необходимость вызвать все эти предупреждения для проверки наших внешних библиотек очень громоздка и не так проста для интеграции в нашу кодовую базу. Следовательно, мы хотели бы создать новый тест, который концептуально выглядит следующим образом:

#include <dlib>
#include <boost>

static_assert(getWarningLevel(4996) == 4, "Deprecated Warning Was suppressed");

Однако из поиска мы не можем найти способ запросить уровень предупреждения, так как поисковые системы всегда говорят нам, как включить предупреждение. Существует ли способ получить уровень предупреждения?

Некоторые ограничения к ответу:

  • Нас интересует только Visual Studio 2017 (или выше)
  • Дополнительные очки: также есть решение для clang-cl
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...