有选择地禁用第三方库的C++核心指南检查器

Fra*_*sco 5 c++ boost code-analysis visual-studio c++11

我想尝试在VS2015下的C++ 11/14项目中使用核心指南检查工具.

在我的代码中,我使用了许多来自Boost的库,它们会引发很多警告.我并不担心这些警告,因为Boost正在做很多非常聪明的工作,并且这些图书馆的编写目的不是为了符合准则,而这些准则主要是他们所遵循的.

但是在如此大量的警告中,我无法在我的代码中找到真正的问题(至少根据工具).

有没有办法抑制第三方代码的所有警告?也许在#including boost标题之前和之后有一些属性?

我从Visual C++团队博客阅读了这个页面,但我一直无法找到它.

apa*_*doe 2

有一个未记录的环境变量 CAExcludePath,用于过滤来自该路径中的文件的警告。我通常将 %CAExcludePath% 设置为 %Include% 来运行。

您还可以从 MSBuild 使用它,请参阅此处的示例(成功与否):Suppress warnings for external headers in VS2017 Code Analysis

MSVC 正在研究类似于 GCC 系统标头的东西,这应该是解决此问题的更全面的解决方案。