如何将override关键字添加到大型C++代码库中



我有一个包含数千个源文件的大型C++代码库。我想在任何合适的地方添加override关键字。我的一些明显被覆盖的函数实际上并没有覆盖基类中的任何函数,我想抓住这些函数,或者至少让它们脱颖而出。

我试着手动操作,但代码库太大了。我试过使用clang现代化,但没有提供有用的说明。我还担心它无法理解为Visual Studio编写的代码库。

如何在不花费人工周或更长时间的情况下将override关键字添加到我的代码库中?

似乎clang mode现代化已经进入了支持这一点的clang整洁。

示例代码(test.cpp):

struct Base {
    virtual void reimplementMe(int a) {}
};
struct Derived : public Base  {
    virtual void reimplementMe(int a) {}
};

clang整洁调用(试运行):

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 {}
};

注意:使用了这篇伟大文章中的示例——请查看详细的解释,并查看它的下一部分,该部分描述了如何转换一个更大的项目。

祝你好运!

最新更新