Podwójne przypisanie tej samej zmiennej w jednym wyrażeniu w C ++ 11

Standard C ++ 11 (5.17, expr.ass) stwierdza, że

We wszystkich przypadkach przypisanie jest sekwencjonowane po obliczeniu wartości prawego i lewego argumentu oraz przed obliczeniem wartości wyrażenia przypisania. W odniesieniu do wywołania funkcji o nieokreślonym kolejności, działanie przypisania złożonego jest pojedynczą oceną

Jak rozumiem, wszystkie wyrażenia, które są częścią danego zadania, będą oceniane przed samym zadaniem. Ta reguła powinna działać, nawet jeśli dwukrotnie zmodyfikuję tę samą zmienną w tym samym zadaniu, co, jestem pewien, było przedtem niezdefiniowanym zachowaniem.

Czy podany kod:

int a = 0;
a = (a+=1) = 10;

if ( a == 10 ) {
    printf("this is defined");
} else {
    printf("undefined"); 
}

zawsze oceniaja==10?

questionAnswers(3)

yourAnswerToTheQuestion