Привет всем, сегодня я наткнулся на этот фрагмент кода и не понимаю, что именно происходит и, в частности, в каком порядке:
Код :
#include <iostream>
bool foo(double & m)
{
m = 1.0;
return true;
}
int main()
{
double test = 0.0;
std::cout << "Value of test is : \t" << test << "\tReturn value of function is : " << foo(test) << "\tValue of test : " << test << std::endl;
return 0;
}
Результат:
Value of test is : 1 Return value of function is : 1 Value of test : 0
Видя это, я бы предположил, что перед вызовом функции печатается самый правый аргумент. Так это оценка справа налево ?? Однако во время отладки кажется, что функция вызывается до вывода, чего я и ожидал. Я использую Win7 и MSVS 2010. Любая помощь приветствуется!