>>534
だから、それなら>>486

a = foo(b) - foo(a);

1.式の右側のfoo(a)が光ながら4に変わった! (foo(a) が評価されて値4を取得)
2.式のfoo(b)が光ながら1に変わった!    (foo(b) が評価されて値1を取得)
(以下略)

で、プログラムの出力は

 4 : foo(a) の出力
 1 : foo(b) の出力
-3

になるはずだよね。でもそうはならないんだけど (VC では)。