加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 07:13:01 所属栏目:百科 来源:网络整理
导读:我有一个包含数千个源文件的大型C代码库.我想在适当的地方添加override关键字.我的一些显然覆盖的函数实际上并没有覆盖基类中的任何函数,我想抓住这些函数或者至少让它们脱颖而出. 我尝试手动完成,但代码库太大了.我尝试使用clang-modernize,但它没有附带有
我有一个包含数千个源文件的大型C代码库.我想在适当的地方添加override关键字.我的一些显然覆盖的函数实际上并没有覆盖基类中的任何函数,我想抓住这些函数或者至少让它们脱颖而出.

我尝试手动完成,但代码库太大了.我尝试使用clang-modernize,但它没有附带有用的说明.我也担心它无法理解为Visual Studio编写的代码库.

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

解决方法

似乎clang-modernize已经进入 clang-tidy,支持这一点.

示例代码(test.cpp):

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

clang-tidy invocation(干运行):

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,其中介绍了如何转换更大的项目.

祝好运!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读