检测MSVC 2017中的警告
Detect warning in MSVC 2017
最近,我们发现我们的外部库之一(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(或以上(感兴趣
- 特级要点:也有解决方案的解决方案
您可以使用:
保存和恢复警告级别#pragma warning(push) // Save current warning state
#include <offendingheaderfile.h>
#pragma warning(pop) // Restore saved warning state
相关文章:
- 警告处理为错误这里有什么问题
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 关于std::move的使用,是否有编译警告
- g++ 在某个类成员未初始化时不发出警告
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 使用typeid警告未使用的变量
- Visual Studio 2017循环自动向量化问题
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- 示例C++项目编译中的警告
- Visual Studio 2017 不允许我创建 C++ 专用模板
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 如何修复编译器警告 C6386 和 C6385?
- 返回语句后的代码,没有警告
- 检测MSVC 2017中的警告
- 如果变量未初始化,Visual Studio 2017 不会生成任何警告
- (MSVC 2017 /WALL & /WX)包括 Iostream 产生 800 条警告