c++ - 禁用clang-tidy检查的内联方式

标签 c++ clang++ clang-tidy

我正在尝试为一个项目设置 clang-tidy。我希望能够获得干净的输出,并鼓励在可能的情况下使用 -fix 模式。但是,在个别情况下需要异常(exception)。

尽可能多地使用

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreserved-id-macro"
// Code that is being specially exempted
#pragma clang diagnostic pop

对于想要在本地禁用编译器警告的等效情况,是否可以从 clang-tidy 执行类似的操作?

我试过了

#pragma clang diagnostic push
#pragma clang diagnostic ignored "readability-identifier-naming"
// Code that is being specially exempted
#pragma clang diagnostic pop

并且也将 clang 替换为 clang-tidy。不幸的是,当使用 clang 作为 pragma 目标并使用常规 clang 进行编译时,我收到编译警告

warning: pragma diagnostic expected option name (e.g. "-Wundef") [-Wunknown-pragmas]

warning: unknown pragma ignored [clang-diagnostic-unknown-pragmas]

如果我使用 clang-tidy 代替 clang 进行编译。在源代码上运行时,它们都不会影响 clang-tidy 本身的输出。

这适用于 x86_64 Linux 上的 clangclang-tidy 3.8。

最佳答案

只需在您希望 clang-tidy 忽略的行的任意位置添加一个包含字符串 NOLINT 的注释。例如:

badcode;  // NOLINT

// NOLINTNEXTLINE
badcode;

badcode; // NOLINT(cert-err-58-cpp)

参见文档 here .

关于c++ - 禁用clang-tidy检查的内联方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37950439/

相关文章:

c++ - ILMerge 使用 2 个第三方 dll 的 C++

c++ - 如何将任何 DLL 链接到 Cmake 项目

c++ - 从文件中引用不同名称的类的方法

c++ - 如何在 Windows 上使用和配置 clang-tidy?

c++ - Clang-tidy 不正确的舍入

c++ - 跨线程原子变量更新反射的延迟

c++ - 为什么 MFC DoModal 返回 -1 ? -1 是什么意思?

c++ - 使用 clang 和 libstdc++ 时无法使用实验性::可选的常量引用

c++ - Windows 7(32 位)上带有 libstdc++-6.dll 的 clang++ 3.2

c++ - 修复时 clang-tidy 插入多个 'override' 说明符