Sequenzpunkt innerhalb der Zuweisungsoperatoren

Nehmen wir zum Beispiel den spezifischen Verknüpfungszuweisungsoperator^=. Diese Stackoverflow-Seite sagt, dass der linke Operand nach der Auswertung von @ möglicherweise nicht geändert wur^= und damit den Codea ^= b ^= a ^= b undefined behaivor. Dies scheint jedoch nicht der Fall zu sein. Der Standard sagt in 5.17 [expr.ass], dass

In allen Fällen wird die Zuweisung nach der Wertberechnung des rechten und linken Operanden und vor der Wertberechnung des Zuweisungsausdrucks sequenziert.

Diese Anweisung enthält zwei Schlüsselpunkte. 1) Was bedeutet das ThemaZuordnun bezieht sich auf? Meiner Meinung nach bezieht es sich nur auf die Modifikation des linken Operanden. 2) Was bedeutetWertberechnung des Zuweisungsausdrucks bezieht sich auf? cppreference sagt, es bezieht sich auf die Rückgabe des Verweises auf dasgeänder Objekt (Hervorhebung von mir).

Als Fazit sollte der linke Operand bereits nach der Auswertung von @ geändert worden se^=, das ist ein Widerspruch zu dem, was (die meisten) Leute denken. Vermisse ich hier etwas?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage