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

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

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 %>


Ответы (1 шт):

Автор решения: Harry

См. диграфы.

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

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;
}

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

→ Ссылка