作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个包含数千个源文件的大型 C++ 代码库。我想在适当的地方添加 override
关键字。我的一些明显被覆盖的函数实际上并没有覆盖基类中的任何函数,我想捕获这些或至少让它们脱颖而出。
我尝试手动执行,但代码库太大。我尝试使用 clang-modernize,但它没有提供有用的说明。我还担心它无法理解为 Visual Studio 编写的代码库。
如何在不花费人工周或更多时间的情况下将 override 关键字添加到我的代码库中?
最佳答案
似乎 clang-modernize 已经进入了 clang-tidy这支持这一点。
示例代码(test.cpp):
struct Base {
virtual void reimplementMe(int a) {}
};
struct Derived : public Base {
virtual void reimplementMe(int a) {}
};
clang-tidy 调用(试运行):
clang-tidy-6.0 -checks='modernize-use-override' test.cpp -- -std=c++11
要真正修复您的代码(确保有一个有效的备份):
clang-tidy-6.0 -checks='modernize-use-override' -fix test.cpp -- -std=c++11
给予:
struct Base {
virtual void reimplementMe(int a) {}
};
struct Derived : public Base {
void reimplementMe(int a) override {}
};
注意:示例来自 this great article已被使用——查看详细说明并检查它的 next part其中描述了如何转换更大的项目。
祝你好运!
关于c++ - 如何将 override 关键字添加到大型 C++ 代码库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31173066/
我是一名优秀的程序员,十分优秀!