Sau khi xem xét một câu hỏi khác trên SO (Using NaN in C++), tôi đã trở nên tò mò về std::numeric_limits<double>::signaling_NaN()
.Làm thế nào để sử dụng std :: signaling_nan?
Tôi không thể nhận tín hiệu_NaN để ném ngoại lệ. Tôi nghĩ có lẽ bởi tín hiệu nó thực sự có nghĩa là một tín hiệu vì vậy tôi cố gắng bắt SIGFPE nhưng nope ...
Đây là mã của tôi:
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
để đánh giá đúng, vì vậy nó được thực hiện trên hệ thống của tôi.
Bất kỳ ý tưởng nào?
Tôi đang sử dụng ms visual studio .net 2003's C++ compiler. Tôi muốn kiểm tra nó khi tôi về nhà.
Cảm ơn!
Tôi giả sử my_nan và num được cho là cùng một biến. Nếu vậy, hãy sửa lỗi này. – Motti