Каким образом работает данный код?

Рейтинг: 2Ответов: 1Опубликовано: 01.04.2023

Объясните, пожалуйста, почему и как работает следующий код:

std::vector<int> v <%1, 2, 3, 4, 5%>;
for (std::size_t i = 0; i < v.size();++i) {
    std::cout << v<:i:> << std::endl;
}

Самое забавное, что расположение %,: должно быть строгим, как в коде. Условно после точки с запятой, компилятор выдает ошибку, так как подстраивает в --> std::vector<int> v < % 1, 2, 3, 4, 5 %>

Ответы

▲ 4Принят

См. диграфы.

Приведенный вами код эквивалентен следующему:

std::vector<int> v {1, 2, 3, 4, 5};
for (std::size_t i = 0; i < v.size();++i) {
    std::cout << v[i] << std::endl;
}

Как и почему он работает, объяснять не надо? :)