Изменить: не ответил - связанный вопрос касался обычных значений r, списки инициализаторов - это отдельная, если это связано концепция.
Является ли этот оператор корректным или использует префиксный оператор инкремента в списке инициализаторов для переменной, которая дважды появляется в списке, undefined поведение?
struct T t = { i, ++i };
Меня больше всего интересует ANSI C, но было бы полезно узнать, отличаются ли другие версии C и/или С++. И если аналогичные конструкции, подобные следующим, являются законными:
struct T t = { i, i++ };
struct T t = { ++i, ++i };
struct T t = { i++, ++i };
struct T t = { i++, i++ };