【发布时间】:2017-06-22 01:54:23
【问题描述】:
我对代表安静 NaN 值的 C++ 工具的数量感到惊讶。我找到了三种标准方式:
-
std::numeric_limits<T>::quiet_NaN()- 通用的,我认为它是被选中的 -
std::nan、std::nanf、std::nanl- 接受const char*参数的函数族 -
NAN- 一个宏,“计算结果是一个安静的非数字”
每一个都是在 C++11 中引入的。我对此有几个问题:
-
const char*参数在std::nan和 co 中代表什么?它是如何使用的? - 为什么我们需要在 C++11 中添加一个宏,而我们已经为此添加了一个通用特征类? (是为了兼容 C 吗?)
- 默认情况下我应该使用什么? (我想这是第一个)
【问题讨论】:
-
char 用于指定您想要的 Nan。解释未指定(iirc),但在我的 linux 机器上,字节用于初始化 Nan“有效负载”,主要用于帮助诊断哪里特定的 Nans 来自。
标签: c++11 floating-point nan cmath