【发布时间】:2014-12-02 22:07:13
【问题描述】:
是否有任何编译器标志来强制执行下一个规则?
如果 T 具有用户定义的析构函数或用户定义的复制赋值运算符,则不推荐生成隐式定义的复制构造函数。
隐式定义的复制赋值运算符的生成是 如果 T 具有用户声明的析构函数,则弃用(C++11 起)或 用户声明的复制构造函数。
我有兴趣在任何 Clang、Visual Studio 2013 或 GCC 中强制执行规则,因为代码库将与所有这些一起编译。
【问题讨论】:
-
你可以继承
noncopyable:boost.org/doc/libs/1_55_0/libs/utility/… -
对于 VS 你可以激活“warning-as-errors”
-
@MarcoA。是警告吗?在哪个版本中,处于什么警告级别?
-
@EdChum 我想让对象可复制,但有时可能会忘记添加赋值运算符/复制构造函数
-
我不确定这是一个警告,但应该是。如果是,你肯定可以打开它