关于 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 上没有看到 & = 语法。
最佳答案
&
有一个 ref qualifier .
在这种特殊情况下,它使得您要分配的 C 实例必须是非常量左值。
关于c++ - C& 运算符中的 &= 是什么意思=(const C&) & = default;做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24484365/