Visual Studio 2015提供_isnan
和std::isnan
来检查双精度是否为NaN。
按照VS'转到定义'对于检查NaN的简单程序,函数和汇编输出的结果并不相同。
_isnan
与std::isnan
有何不同?在编写C ++时我应该使用哪个?
答案 0 :(得分:2)
_isnan 来自使用#include <float.h>
std :: isnan 来自标准名称空间,使用#include <cmath>
您可以在Visual Studio 2015中使用其中任何一个。无所谓。
答案 1 :(得分:1)
来自微软的James McNellis的私人通讯(已批准发布):
“他们在不同的时间点被整合到C运行时。不久之前,_isnan与其他一些IEEE建议的功能一起被集成;后来添加了isnan作为C99添加的一部分。
如果您发现某个产生错误结果的情况,请在https://connect.microsoft.com/visualstudio/处提交错误。
我的结论是_isnan
和std::isnan
应该做同样的事情。