我正在将指南支持库检查器集成到我的一个项目中。

Microsoft.CppCoreCheck
Microsoft.Gsl

当我运行它时,我从标准库、glm、boost 等包含的库中得到了一堆错误。

一个具体的例子是 SDL.h ,我在 sdl_stdinc.h 中收到警告。
我确保仅通过我控制的一个 header 包含 SDL:

扩展SDL文件
#pragma once
#pragma warning(disable: 4710)
#pragma warning(push, 0)
#include <SDL.h>
#pragma warning(pop)

我找不到有关如何从静态代码分析中排除此库的信息。

最佳答案

有多种方法可以抑制 CppCoreCheck 警告:

  • 您可以使用
    [[gsl::suppress(chapter)]] 属性,其中章节来自 C++Core Guidelines ,例如 con.4 。另请查看 MS docs 以获取信息。
  • 您可以使用 #pragma warning 来单独或批量抑制警告,如上面的mentioend。
  • 您可以使用 CAExcludePath 抑制“不是您的代码”的所有警告。
  • 关于c++ - gsl::suppress整个包含语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44345855/

    10-13 06:59