浮動小数点例外のcatch

どこかからNaNが伝播している模様。困った。

Visual Studio 2003では各種浮動小数点演算の例外をcatchできるようになっているが、デバッグ→例外で指定するだけではだめで、

// unmask so that floating point exceptions are thrown
_controlfp(0, _MCW_EM);

というコードも必要。

追記:
これだと大量発生する丸め誤差例外も発生しちゃうのか。改良が必要。