int a()
{
return 1;
}
int b()
{
return 2;
}
int c()
{
return 3;
}
int g(int, int)
{
return 0;
}
void f(int, int)
{}
int main()
{
f(g(a(), b()),
c());
}
I know the evaluation order of function arguments is unspecified as per the C++ standard.
In other words, the actual evaluation order may be:
a(), b(), c()
c(), a(), b()
b(), a(), c()
c(), b(), a()
I just wonder:
Does the C++ stardard guarantee c()
will never be called between a()
and b()
?