来自“嘲笑傻瓜”页面:https://google.github.io/googletest/gmock_for_dummies.html#a-case-for-mock-turtles
我将定义这样一个可测试的接口:
class Turtle {
...
virtual ~Turtle() {}
...我的林特对我大喊大叫,说我应该遵守第三条规则。所以我补充道:
Turtle() = default;
Turtle(const Turtle& x) = default;
Turtle& operator=(const Turtle& x) = default;然后它仍然抱怨我需要移动构造函数和赋值操作符,所以我不得不添加:
Turtle(Turtle&& x) = default;
Turtle& operator=(Turtle&& x) = default;好的,所以我知道这是第5条规则。
然后,对于我从这个接口继承的每个类,我必须做同样的事情,即一个析构函数加上5个默认的构造函数/赋值操作符。
我的问题是:
发布于 2022-08-17 19:31:52
我使用的是clangtidy https://releases.llvm.org/13.0.0/tools/clang/tools/extra/docs/clang-tidy/checks/cppcoreguidelines-special-member-functions.html
如果我将析构函数定义为default
virtual ~Turtle() = default;然后,我至少可以使用AllowSoleDefaultDtor选项定制linter行为。
https://stackoverflow.com/questions/73379044
复制相似问题