graphics.hatenablog.com

技術系テクニカルアーティストのあれこれ

VC++2013 の最適化バグ?

for(const Obj* p_obj : get_objects()) {
  float t;
  if(p_obj->hoge(&t)) {
    if(t < t_min) t_min = t;
  }
}

みたいなことやってたら、1個前のループで更新したtの値がそのまま残っててt_minとの比較が全部falseになってた。hoge()は渡されたtより小さい結果がでたらtを更新してtrueを返す。
float t = 0.f; に書き換えて修正完了。

追記

たしかに、言われてみればふつうに納得できる範囲内だ。