我正在尝试使用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 cppreference,std::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,显然可以使用各自的编译器进行构建。有什么我想念的吗?
答案 0 :(得分:1)
isnan
。
很可能有某种定义告诉它你没有std::isnan
可用。