我很惊讶表示安静的NaN值的C ++工具的数量。我发现了三种标准方式:
std::numeric_limits<T>::quiet_NaN()
- 通用,我认为这是选择的std::nan
,std::nanf
,std::nanl
- 接受const char*
参数的函数系列NAN
- 一个宏,“评估为安静的非数字”这些在C ++ 11中引入。我有几个问题:
const char*
和std::nan
中的complete: function()
{
$(this).prop("selected", false);
}
参数代表什么?如何使用?答案 0 :(得分:10)
std::nan
,std::nanl
和std::nanf
are inherited from the C Math library; NAN macro也是如此。他们都住在C <math.h>
。然而,正如@NicolBolas所暗示的那样,它们只是在C ++ 11中引入,因为它们不是ANSI C的一部分,而是C99,C语言标准的新版本。 C ++标准委员会正在努力更新&#39; C兼容性,可以这么说。
std::numeric_limits<T>
是为C ++本身设计的(远在C ++ 11之前),这就是我所使用的。
所以,最重要的答案是:C99兼容性。