Посмотрев другой вопрос о SO ( Использование NaN в C ++ ), мне стало любопытно узнать std::numeric_limits<double>::signaling_NaN()
.
Мне не удалось заставить signaling_NaN выдать исключение. Я подумала, что под сигналом это действительно означает сигнал, поэтому я попыталась поймать SIGFPE, но нет ...
Вот мой код:
double my_nan = numeric_limits<double>::signaling_NaN();
my_nan++;
my_nan += 5;
my_nan = my_nan / 10;
my_nan = 15 / my_nan;
cout << my_nan << endl;
numeric_limits<double>::has_signaling_NaN
оценивается как true, поэтому он реализован в моей системе.
Есть идеи?
Я использую компилятор MS Visual Studio .net 2003 C ++. Я хочу проверить это на другом, когда вернусь домой.
Спасибо!