>>101
これはVC8でもコンパイルできた。
std::ostream &out = fout ? static_cast<std::ostream&>(fout) : std::cout;

条件演算子の結果の型を決める手順はきちんと規格書を呼んだわけではないが、結構複雑だと聞いたことがある。