使用 NOLINT 抑制 clang-tidy。我怎样才能抑制压制?

Mic*_*lin 3 c++ clang-tidy

我有如下代码

int do_thing( int arg1, int arg2, int arg3 ) { // NOLINT : don't care that arg2 and arg3 aren't used
  return arg1;
}
Run Code Online (Sandbox Code Playgroud)

NOLINT 注释通常会抑制清晰的警告。但是,如何在不更改代码的情况下“重新启用”该行的叮当声?

pab*_*285 5

AFAIK 没有简单的方法可以按照您想要的方式执行此操作。每当 clang-tidy 找到 NOLINT 注释时,它就会跳过该行,没有命令行选项可以防止这种行为。

由于 NOLINT 被放置在注释中,您不能使用预处理器,因为在宏扩展之前注释被剥离。

您可以做的是查找并替换// NOLINT一些其他(最好是唯一的)文本,例如// DISABLE_NOLINT,运行您的 clang-tidy 检查,然后将其替换回来。

如果您真的不想触及该代码,您可以从源代码构建自己的 clang-tidy,您static bool LineIsMarkedWithNOLINT()在 ClangTidyDiagnosticConsumer.cpp 中修改以始终返回 false。或者甚至可以创建一个新的命令行选项来切换行为,如果这对您来说是值得的。