以下のプログラムは 10 を出力します。最初に 0 (関数 f の else 分岐) を出力し、次に 1 を出力すると予想していました。順序が逆になるのはなぜですか?
#include <iostream>
using namespace std;
int f(bool& b){
if (b==true){
return 1;
} else {
b=true;
return 0;
}
}
int main () {
bool b=false;
cout<<unitbuf<<f(b)<<unitbuf<<f(b);
return 0;
}
出力
10