В С++ выполняется следующее поведение undefined:
int i = 0;
(i+=10)+=10;
В комментариях к моему ответу был обсужден вопрос Что такое результат + = в C и С++? Тонкость здесь заключается в том, что ответ по умолчанию кажется "да", тогда как кажется, что правильный ответ "зависит от версии стандарта С++".
Если это зависит от версии стандарта, объясните, где находится UB, а где нет.