C++ 由于Visual Studio 2012中缺少std::isnan,Qt生成失败

C++ 由于Visual Studio 2012中缺少std::isnan,Qt生成失败,c++,qt,visual-studio-2012,c++11,compiler-errors,C++,Qt,Visual Studio 2012,C++11,Compiler Errors,我正在尝试使用VisualStudio2012从源代码构建Qt5.2.0。编译以下文件时失败: /qtdeclarative/src/qml/jsruntime/qv4value\u p.h 出现以下错误: 191:错误C2039:\u isnan:不是std的成员 第191行包含以下内容: 返回doubleValue()&&!std::isnan(doubleValue()) ,std::isnan应该在头cmath中定义,因为C++11。Qt头文件不包括此头文件。在Visual Studio

我正在尝试使用VisualStudio2012从源代码构建Qt5.2.0。编译以下文件时失败:

/qtdeclarative/src/qml/jsruntime/qv4value\u p.h

出现以下错误:

191:错误C2039:\u isnan:不是std的成员

第191行包含以下内容:

返回doubleValue()&&!std::isnan(doubleValue())

std::isnan
应该在头
cmath
中定义,因为C++11。Qt头文件不包括此头文件。在Visual Studio中检查
cmath
时,我无法看到名为
isnan
的函数


我得出的VS2012缺少这个C++11函数的结论正确吗?起初我认为我可能必须以某种方式启用C++11支持,但根据C++11,默认情况下支持是启用的。考虑到这一点,显然可以使用相应的编译器进行构建。我缺少什么吗?

isnan
从Visual Studio 2013开始在Visual Studio的标准库中实现


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

您的Qt配置选项是什么?你能试试建5.2.1吗?让我困惑的是,VS2012版本是Qt的连续集成版本之一,我会尝试使用
#ifdef isnan
作为检查,如果未定义函数,则此符号应作为宏(宏解释错误消息)。谢谢。我将尝试将-no-c++11传递给Qt的configure工具,看看是否有效。如果没有,我会按照你的建议检查定义。我只是浏览了一下代码,没有办法用VS2010或2012编译。我猜这个模块不包括在内。