由于在Visual Studio 2012中缺少std :: isnan,Qt构建失败

时间:2014-01-22 16:44:51

标签: c++ qt visual-studio-2012 c++11 compiler-errors

我正在尝试使用Visual Studio 2012从源代码构建Qt 5.2.0。在编译以下文件时失败:

/qtdeclarative/src/qml/jsruntime/qv4value_p.h

出现以下错误:

191: error C2039: _isnan: is not a member of std

第191行包含以下内容:

return doubleValue() && !std::isnan(doubleValue());

According to cppreferencestd::isnan应在标头cmath中定义,因为C ++ 11。 Qt头文件确实包含此标头。当我在Visual Studio中检查cmath时,我看不到名为isnan的函数。

我是否正确地断定VS2012缺少这个C ++ 11功能?起初我以为我可能不得不以某种方式启用C ++ 11支持,但根据this answer默认情况下启用C ++ 11支持。鉴于binary downloads for Qt are available for VS2010 and VS2012,显然可以使用各自的编译器进行构建。有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

从Visual Studio 2013开始,在Visual Studio标准库中实现了

isnan

很可能有某种定义告诉它你没有std::isnan可用。