Использование значения предыдущего элемента при инициализации массива

Итак, я обнаружил, что этот код работает:

int foo[] = {0, foo[0] + 1, foo[1] + 2, foo[2] + 4 };

Это официально законно? Я думал, что делаю здесь initializer_list, но если я могу получить доступ к ранее инициализированным элементам, это должно быть выполнение агрегатной инициализации.

Я пытался найти официальное заявление о законности этого, но не смог.


person Jonathan Mee    schedule 10.07.2018    source источник
comment
Вы уже задавали этот вопрос   -  person NathanOliver    schedule 10.07.2018
comment
Похоже, что дубликат датирован 2015 годом, и ответ на этот вопрос не совпадает со связанным дубликатом. Это заставляет меня задаться вопросом, как правильно запросить обновление старого вопроса, когда изменения языка делают ответы на этот вопрос неверными?   -  person François Andrieux    schedule 10.07.2018