I found interesting example of code and don't understand, why output is 656. I thought Function had to been called first, so variable 'b' had to been changed second and output will be 655. But this example shows reversing calling. Why? I tried to separate 'cout' in three parts and everything works as I guessed.
#include <iostream>
int Function(int number1, int& number2)
{
    number1++;
    number2--;
    return number1;
}
int main()
{
    int a = 5, b = 6;
    std::cout << Function(a, b) << a << b;  // 656
    return 0;
}
