在我的 C++11 标准 (ISO/IEC 14882:2011(E)) 副本中,赋值运算符定义包括:
在简单赋值 (
=
) 中,表达式的值替换左操作数引用的对象的值。
这不应该说“右操作数的值”而不是“表达式的值”吗?目前它似乎模棱两可,很容易被解释为“赋值表达式的值”。
在 [expr.ass] 的另一段中,“表达式”一词也有歧义:
如果左操作数不是类类型,则表达式被隐式转换(第 4 条)为左操作数的 cv 非限定类型
我认为这也意味着“正确的操作数”,对吧?
这也是我能找到的赋值运算符效果的唯一定义。我错过了什么吗?