このリンクでは、次のように述べられています。
演算子のオペランド (+、-、=、*、/ など) を含む部分式の評価順序はUnspecifiedです。
という表現で明らかです。
foo1() = foo2() = foo3() = 7; // snippet of C++ code
演算子のオペランドは=
任意の順序で評価できます。コンパイラは自由に選択できます (リンク、Ralph Tandetzkyによる回答)。
この質問はばかげているように見えるかもしれませんが、私はこれについて本当に混乱しています。、 、 が、、に置き換えられた場合foo1()
、上記のステートメントも当てはまります か? 次のように:foo2()
foo3()
a
b
c
a = b = c = 7;