如何在rvalues的算术表达式中实现“最优”运算符重载解析?

时间:2011-02-24 21:46:58

标签: c++11 operator-overloading mingw rvalue-reference move-semantics

2 个答案:

答案 0 :(得分:1)

您不应该返回右值引用,您应该返回一个值。此外,您不应同时指定成员一个免费的运算符+。我很惊讶甚至编译。

编辑:

r = v1 + v2 + (v3 + v4) + v5;

当您执行两个子计算时,可能只有一个临时值?那是不可能的。您无法重新编写标准并更改此标准。

你只需要相信你的用户做一些不完全愚蠢的事情,比如编写上面的代码行,并期望只有一个临时代码。

答案 1 :(得分:1)

我建议在N3225的第21章中找到的basic_string运算符+()之后对代码进行建模。