Em quais versões do padrão C ++ “(i + = 10) + = 10” tem comportamento indefinido?

Em C ++, o seguinte tem comportamento indefinido:

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

Houve algum debate sobre isso nos comentários paraminha resposta paraQual é o resultado de + = em C e C ++? A sutileza aqui é que a resposta padrão parece ser "sim", enquanto parece que a resposta correta é "depende da versão do padrão C ++".

Se depender da versão do padrão, explique onde é o UB e onde não é.

questionAnswers(3)

yourAnswerToTheQuestion