sequenced-before
От: DTF  
Дата: 08.06.19 16:10
Оценка:
Добрый вечер.
Кто разбирается, поясните, пожалуйста, где можно найти внятное определение этого отношения (для 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?

Из каких конкретно пунктов стандарта следует ответ на предыдущий вопрос?

Я пытаюсь рассматривать отношения как формальную алгебру, поэтому хочу найти в стандарте формальные определения и аксиомы.
К здравому смыслу просьба не апеллировать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.