使用NOLINT抑制叮当声.如何抑制抑制?
Using NOLINT to suppress clang-tidy. How can I suppress the suppression?
我有如下代码
int do_thing( int arg1, int arg2, int arg3 ) { // NOLINT : don't care that arg2 and arg3 aren't used
return arg1;
}
NOLINT 注释通常会抑制叮叮当当的警告。 但是,如何在不更改代码的情况下为该行"重新启用"叮当声?
AFAIK 没有简单的方法可以按照您想要的方式执行此操作。每当 clang-tidy 找到 NOLINT 注释时,它只是跳过该行,没有命令行选项可以防止此行为。
由于 NOLINT 放置在注释中,因此不能使用预处理器,因为在宏扩展之前会剥离注释。
您可以做的是找到并用其他一些(最好是唯一的)文本替换// NOLINT
,例如// DISABLE_NOLINT
,运行您的叮当声整洁检查,然后将其替换回来。
如果你真的不想碰那个代码,你可以从源代码构建你自己的clang-tidy,你在ClangTidyDiDiagnosticConsumer中修改static bool LineIsMarkedWithNOLINT()
.cpp总是返回false。或者,如果值得您付出努力,甚至可以创建一个新的命令行选项来切换行为。
你根本不需要使用// NOLINT
。只需删除参数名称或将它们添加到注释中即可。这将使编译器和 Clang Tidy 静音。
int do_thing( int arg1, int /*arg2*/, int /*arg3*/ ) {
return arg1;
}
另一种选择是使用 C++ 17 中引入的[[maybe_unused]]
属性:
int do_thing( int arg1, [[maybe_unused]] int arg2, [[maybe_unused]] int arg3 ) {
return arg1;
}
相关文章:
- MacOS通过在莫哈韦"wchar.h"下破碎的自制啤酒发出叮当声
- 为什么 gcc 会产生这种奇怪的组件与叮当声?
- 如何在窗户上使用和配置叮当声?
- 叮当声:折叠表情和"expression result unused"警告
- 使用NOLINT抑制叮当声.如何抑制抑制?
- 是否有可能编写新的叮当声现代化规则?
- 忽略由第三方标头引起的 [叮当声诊断错误] 叮当声整洁
- 使叮当声忽略对线路的评论
- 在叮当声中regex_constants实现错误
- 用叮当声(3.8)和Android NDK R14B建筑物提升(1.58)
- MAC上的叮当声不支持统一初始化
- 别名 std::initializer_list 在叮当声中
- 在叮当声中init_priority支持
- 自定义分配器上的额外移动结构用于叮当声
- 从 time_point + 持续时间到持续时间的强制转换在叮当声中失败
- G 和关于数组大小的叮当声
- 如何将boost_threads与叮当声一起使用
- Cmake 添加包含路径到叮当声
- 模板模板参数和叮当声
- 用于模糊解析C++的叮当声