9

_controlfp 関数を介して浮動小数点例外をスローするように Visual Studio を構成しました。これは NAN と INF では機能しますが、QNAN では機能しません。つまり、Quiet NaN は例外を発生させません。Visual Studio 2008/2010 に、QNAN を代わりに NAN に強制して例外をスローさせる関数または構成オプションはありますか?

4

1 に答える 1

1

私はこのようなことをリモートで行ったことさえありませんが、いくつかの役立つヒント:

読む: http://www.cisl.ucar.edu/docs/trap.error/errortypes.html

インターネットでの結果の検索 (実際には約 30 秒しか費やしていません) から、これは通常、コンパイラ オプションで有効になっていると思われます。

ただし、このようなトラップの有効化/無効化はプログラムで指定できることも覚えているようです。特にWindowsでは、プリンターを印刷に使用する場合など、ほとんどすべてのプログラムで実行できます。さらに、このオプションをプログラムで変更する場合は、できるだけ早く以前の値に戻してください。そうしないと、.NET のユーザーがコードを使用しようとすると、問題が発生する可能性があります。

(つまり、_controlfp の使用は、他のルーチンによってオーバーライドされる可能性があります。これが実際に使用する正しいアプローチであると仮定します)

Visual Studio C++ 2008 / 2010 - float NaN でブレークするも参照してください。

于 2010-12-16T02:02:16.910 に答える