Добрый вечер.
Кто разбирается, поясните, пожалуйста, где можно найти внятное определение этого отношения (для 17го стандарта).
В [4.6.15] описываются его свойства (асимметричное, транзитивное и т.п.), а в [4.6.17] и [4.6.18] описываются отношения при вычислении подвыражений и аргументов функции.
Что-то похожее на нужное определение описано в [4.6.16]:
Every value computation and side effect associated with a full-expression is sequenced before every value computation and side effect associated with the next full-expression to be evaluated.
Однако, непонятно, что такое "next full-expression".
В частности, непонятен вот такой случай:
int a, b;
for (int i = 1; i <= 2; ++i) {
a = 1;
b = 2;
}
Тут две итерации цикла, соответственно, 4 присваивания внутри цикла.
Верно ли, что первое присваивание b = 1 sequenced-before вторым присваиванием a = 1?
Из каких конкретно пунктов стандарта следует ответ на предыдущий вопрос?
Я пытаюсь рассматривать отношения как формальную алгебру, поэтому хочу найти в стандарте формальные определения и аксиомы.
К здравому смыслу просьба не апеллировать