c++ - gsl::suppress 整个包含语句

标签 c++ cpp-core-guidelines

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

Microsoft.CppCoreCheck
Microsoft.Gsl

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

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

ExtSDL.hpp

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

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

最佳答案

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

  • 您可以使用以下方式抑制 CppCoreChecks [[gsl::suppress(chapter)]] 属性,其中 chapter 来自 C++ Core Guidelines ,例如 con.4 .另请查看MS docs以获取信息。
  • 你可以使用#pragma warning如上所述单独或批量抑制警告。
  • 您可以使用CAExcludePath 来抑制所有关于“不是您的代码”的警告。 .

关于c++ - gsl::suppress 整个包含语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44345855/

相关文章:

C++:尝试使用等效的 STL 算法消除原始循环

c++ - CPP 核心指南布局中浪费的空间

c++ - boost pool_alloc

c++ - C2664 : Explicit cast operator do not cast as expected

c++ - 仅在守护线程返回后删除它

c++ - CppCoreGuidelines C.21 是否正确?

c++ - 为什么 not_null 还没有进入 C++ 标准?

c++ - 这个例子中的 Cpp 核心指南浪费了什么?

c++ - 为什么 std::vector 迭代器在 erase() 调用后失效?

c++ - 如何使用 CUDA 内核更新 OpenGL VBO