Является а = 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?
Ответ 1
Результат хорошо определен и был с С++ 98. Оператор запятой вводит точку последовательности (или "упорядоченную до отношения" на более поздних С++) между записью и вторым чтением a, и я не вижу других потенциальных причин для поведения undefined.