gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:16:38 25 4
gpt4 key购买 nike

我有一个包含数千个源文件的大型 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com