Подтвердить что ты не робот

Является а = 0; b = (a ++, a + 1); undefined поведение (UB)?

см. простой пример:

int a = 0;
int b = (a ++  ,  a + 1); // result of b is UB or well defined ?  (c++03).

Это было изменено в С++ 11/С++ 14?

4b9b3361

Ответ 1

Результат хорошо определен и был с С++ 98. Оператор запятой вводит точку последовательности (или "упорядоченную до отношения" на более поздних С++) между записью и вторым чтением a, и я не вижу других потенциальных причин для поведения undefined.