Из ответа Прасуна на вопрос о «Неопределенном поведении и точках последовательности», я не понимаю, что означает следующее
.. Доступ к предыдущему значению должен осуществляться только для определения значения, которое будет сохранено.
В качестве примеров приводятся следующие примеры Undefined Behavior в C ++:
a [i] = i ++;
int x = i + i ++;
Несмотря на данные объяснения там я не понимаю эту часть (думаю, я правильно понимаю остальную часть ответа).
Я не понимаю, что не так в приведенных выше примерах кода. Я думаю, что у них есть четко определенные шаги для компилятора, как показано ниже.
a [i] = i ++;
a [i] = i;
i = i + 1;
int x = i + i ++;
x = i + i;
i = i + 1;
Что мне не хватает? Что означает «предыдущее значение должно быть доступно только для определения значения, которое будет сохранено» ?