W jakich wersjach standardu C ++ „(i + = 10) + = 10” ma niezdefiniowane zachowanie?

W C ++ następujące niezdefiniowane zachowanie:

int i = 0;
(i+=10)+=10;

W komentarzach do tego była pewna debata na ten tematmoja odpowiedź doJaki jest wynik + = w C i C ++? Subtelność polega na tym, że domyślną odpowiedzią wydaje się być „tak”, podczas gdy wydaje się, że poprawna odpowiedź brzmi „zależy od wersji standardu C ++”.

Jeśli zależy to od wersji standardu, proszę wyjaśnić, gdzie jest UB i gdzie nie jest.

questionAnswers(3)

yourAnswerToTheQuestion