Тема: f(i++, i);
int i = 0;
f(i++, i);
В С++ це невизначена поведінка, тобто з під компа можуть вилізти русалоньки і залоскотати. І це не тому, що ми не знаємо порядку обчислення параметрів, а тому, що точка перебігу лише після обчислення всіх параметрів.
В C# це начебто визначена поведінка. І кажуть, що це тому що параметри обчислюються зліва направо. Тут мені не зрозуміло, ну обчислюються вони зліва направо, але побічний і відкладений ефект i++ це оновлення значення i. Так от, де написано, що це відбувається до читання i в другому параметрі?