当类破坏三阶规则(或五阶规则)时,是否可以触发编译器警告?
此功能听起来很容易实现,在安全关键软件中非常有用,但我无法在文档或Google搜索结果中找到它。
答案 0 :(得分:5)
您可以将编译器标志-Weffc++用于GCC
答案 1 :(得分:2)
Visual Studio 2017 RC states有一些" Checkers用于执行C ++核心指南"。自从"规则五"是最容易检查的规则之一,我相信它已经实施。
答案 2 :(得分:2)
clang-tidy
可以捕捉到这样的错误。鉴于此文件:
// badstyle.cpp
class Type {
Type(const Type&) { }
~Type() { }
};
这个命令:
$ clang-tidy badstyle.cpp -checks=cppcoreguidelines-*
我的输出是:
badstyle.cpp:2:7: warning: class 'Type' defines a non-default destructor and a
copy constructor but does not define a copy assignment operator, a move constructor
or a move assignment operator [cppcoreguidelines-special-member-functions]
class Type {
^