Wie geht der Compiler bei diesem Ausdruck vor?
-
Wenn der Compiler bei dem Ausdruck
int b = (a = 5,a+a);auf das '=' trifft wird doch rechtsassoziativ vorgegangen und von dem ';' aus, nach links ausgewertet, doch wenn er auf das ',' trifft, geht er linksassoziativ vor und wertet den Teilausdruck endgültig aus, stimmt das?

-
Schau einfach in den Standard, Abschnitt zu 5.19 "Comma operator":
The comma operator groups left-to-right.
[...]
A pair of expressions separated by a comma is evaluated left-to-right; the left expression is a discardedvalue expression (Clause 5). Every value computation and side effect associated with the left expression is sequenced before every value computation and side effect associated with the right expression.(Zitat aus dem n4296 draft vom 2014-11-19)
-
Danke