c++ - clang-tidy 在修复时插入多个“覆盖”说明符
问题描述
我有这个cmake
项目,我想使用clang-tidy
. 为了不让太多事情同时发生,我只激活了该modernize-use-override
选项。但是,当我应用这个时:
$> run-clang-tidy -header-filter='.*' -checks='-*, modernize-use-override' -fix
到项目中,clang-tidy
插入override
说明符的多个实例,例如:
void update_sizes() override override override etc.
我尝试遵循此处给出的建议并用于cmake
创建 json 编译命令数据库:
$>cmake ../../ -DCMAKE_BUILD_TYPE=debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
我通过将编译器设置为系统范围的默认值(使用)来确定cmake
实际上是在拾取编译器。在这种情况下,生成调用 clang 编译器的 make 文件。clang
update-alternative
cmake
我正在使用 Ubuntu 18.10 和 clang 7。
我也尝试过使用clang-6
和设置cmake
来生成ninja
构建脚本而不是make
文件,但结果总是一样的。
在应用修复之前,整个项目都可以正常编译gcc
。clang
请注意这里有一个类似的讨论,但是那里给出的建议是使用run-clang-tidy.py
,这正是我正在做的。因此,我不认为这是重复的。
解决方案
这与您链接到的讨论中引用的问题相同,在我看来它看起来像一个错误。你有几个选择:
- 将此作为 bug 报告给 clang。等待很长时间。
- 自己修复错误。投入大量时间。
- 使用任何能够对多个文件/目录进行文本替换的工具(例如 Notepad++)。查找所有“覆盖覆盖”事件并将其替换为“覆盖”。重复直到不再出现。为您使用的解决方案的丑陋而颤抖。:)
推荐阅读
- python - 为什么无论输入如何都会引发错误?
- css - 为什么@extend placholder 仅适用于特定元素
- excel - Set transparent icon with RibbonX API in Excel not working
- html - Focus on multiple elements with their properties
- reactjs - 在 React 中导出函数和类组件
- c# - 22021:用于编码“UTF8”的无效字节序列:0x00
- list - 如何在ocaml中的List数组中查找/循环值
- c# - 如何在 Mvc Actionreult 中进行有效的数据检索避免重复
- typescript - 如何确保类的每个方法都必须具有固定的参数集
- unit-testing - 您如何使用 MiniProfiler 从单元测试中查看配置文件信息