Каков следующий список закулисных в цикле for на основе диапазона? - программирование
Подтвердить что ты не робот

Каков следующий список закулисных в цикле for на основе диапазона?

Я изучаю C++ и вижу основанный for диапазоне цикл for:

for (int i : {1,2,3,4,5})
    std::cout << i << ' ';

Что такое временное {1,2,3,4,5} в цикле for за кадром?

4b9b3361

Ответ 1

Объект здесь является экземпляром std::initializer_list<int>. Из справки (выделено мое):

Объект std :: initializer_list создается автоматически, когда:

Braced-init-list используется для инициализации списка объекта, где соответствующий конструктор принимает параметр std :: initializer_list

список фигурных скобок используется в качестве правого операнда присваивания или в качестве аргумента вызова функции, а соответствующий оператор/функция присваивания принимает параметр std :: initializer_list

Braced-init-list привязан к auto, в том числе в цикле for