I am confused with the output of below code when I execute it.
Code:
int add(int a, int b)
{
cout<<\"inside int add function\"<
This line in you code:
cout<
will be translated by the compiler into:
operator<<(operator<<(operator<<(cout,add(10.0f,20.0f)),endl),add(20,50));
As the order of evaluation of function parameters is not mandated by the standard, it just happens that add(20,50)
is evaluated before operator<<(operator<<(cout,add(10.0f,20.0f)),endl)
.