运算符重载,允许使用rvalue捕获但不分配给
||
是否可以设计,以及如何使班级ѭ1overload重载
operator+
,才能做到这一点:
C&& c = c1 + c2;
但这是不可能的:
c1 + c2 = something;
编辑:
我将对象更改为小写字母。 c1
,c2
和c
是C
类的对象。 &&
不是逻辑operator&&
,而是右值引用。
例如写:
double&& d = 1.0 + 2.0;
是100%正确的(新)C ++代码,而
1.0 + 2.0 = 4.0;
显然是编译器错误。我的班级ѭ1double希望完全一样,但要加倍。
第二编辑:
如果我的运算符返回C或C&,则可以分配给右值引用,也可以分配给c1 + c2,这是毫无意义的。在此处提供const会禁用它,但是也会禁用对rvalue的赋值。至少在VC ++ 2k10上。那么,这有多倍呢?
没有找到相关结果
已邀请:
1 个回复
冲汉
注意右括号后的单个“&”号。它防止分配给右值。