Код: Выделить всё
i = 1;
f(i++, i)
Однако я изо всех сил пытаюсь понять, почему это было возможно до C++17.
Какие операции и в каком порядке могли произойти, чтобы прийти к 2, 2?
Как первый аргумент f в конечном итоге получит значение 2, поскольку по определению, i++ всегда возвращает старое значение и ничто не увеличивает i, кроме этого?
Подробнее здесь: https://stackoverflow.com/questions/798 ... i-i-invoke
Мобильная версия