2009-07-21 6 views

答えて

19

正確に。標準から引用すると、 "切り捨てられた値を宛先タイプで表現できない場合の動作は未定義です。"

4

David Thornleyがこの質問に完全に答えました。しかし、あなたのコードでこの状況に対処するには、boost's numeric_castを考慮する必要があります。

double d = double(INT_MIN) - 10000.0; 
int a = boost::numeric_cast<int>(d); 

dintため大きすぎる場合、これは、実行時に例外がスローされます。

関連する問題