我正在将指南支持库检查器集成到我的一个项目中。
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/