【发布时间】:2014-08-20 11:37:49
【问题描述】:
关于 SO 的几个问题使用特定的语法来声明默认赋值运算符。
Rule-of-Three becomes Rule-of-Five with C++11?
class C {
C(const C&) = default;
C(C&&) = default;
C& operator=(const C&) & = default;
C& operator=(C&&) & = default;
virtual ~C() { }
};
我对用于赋值运算符的 & = 感到困惑。经过快速测试,默认赋值运算符声明似乎可以编译并给出预期的行为,无论是否有额外的&符号。
我在 cppreference 上看不到 & = 语法。
【问题讨论】:
-
不是
&=。&是签名的一部分。 -
关于赋值运算符的用法另请参见以下答案:stackoverflow.com/questions/13099942/…
标签: c++ c++11 operator-overloading