_isnan与Visual Studio 2015上的std :: isnan有何不同

时间:2016-09-15 12:50:45

标签: visual-studio visual-c++

Visual Studio 2015提供_isnanstd::isnan来检查双精度是否为NaN。

按照VS'转到定义'对于检查NaN的简单程序,函数和汇编输出的结果并不相同。

_isnanstd::isnan有何不同?在编写C ++时我应该使用哪个?

2 个答案:

答案 0 :(得分:2)

_isnan 来自使用#include <float.h>

的全局名称空间

std :: isnan 来自标准名称空间,使用#include <cmath>

您可以在Visual Studio 2015中使用其中任何一个。无所谓。

Refer this for more on this

答案 1 :(得分:1)

来自微软的James McNellis的私人通讯(已批准发布):

“他们在不同的时间点被整合到C运行时。不久之前,_isnan与其他一些IEEE建议的功能一起被集成;后来添加了isnan作为C99添加的一部分。

如果您发现某个产生错误结果的情况,请在https://connect.microsoft.com/visualstudio/处提交错误。

我的结论是_isnanstd::isnan应该做同样的事情。