c ++中的赋值运算符是返回rvalue还是左值?

时间:2013-10-08 09:59:27

标签: c++ expression operator-precedence

c ++中的赋值运算符是返回rvalue还是左值?如果它是左值,那么两个参数中的哪一个会增加?

(a = b)++

1 个答案:

答案 0 :(得分:9)

返回左值。根据§5.17:

  

赋值运算符(=)和复合赋值运算符all   小组从右到左。 左侧需要一个可修改的左值   操作数并返回一个引用左操作数的左值。

如果这些对象具有用户定义的赋值运算符,那么它取决于operator=的实现和声明(返回类型)。

通常,在

之后
(a = b)++

对象a将递增。