Qt5 msvc 2010不识别自动(c ++ 11)[重复]
Posted
技术标签:
【中文标题】Qt5 msvc 2010不识别自动(c ++ 11)[重复]【英文标题】:Qt5 msvc 2010 do not recognize auto (c++11) [duplicate] 【发布时间】:2015-09-06 07:39:48 【问题描述】:我正在尝试在另一个系统上编译我的旧 Qt 项目:Windows XP、Qt5、msvc 2010。
我的项目中使用了c++11 auto,pro文件中有一行CONFIG += c++11 .
for(auto e : mapTerm->keys())
mapTerm->insert(e, attrib.value(e).toString());
现在它无法识别 auto 循环并给出语法错误。
【问题讨论】:
MSVC 2010 对于 c++11 来说太旧了。 什么是自动循环?一些代码会很好...... 您可以通过在项目设置中选择与 XP 兼容的工具集,在 Windows XP 中使用更高版本的 Visual C++(包括 Visual C++ 2015)。或者,您可以使用 Visual C++ 2010 非标准基于范围的循环(我记得语法有点不同),但我认为没有任何替代auto
的方法。所以你必须拼出类型,或者使用 Visual ++ 非标准替代 decltype
。
【参考方案1】:
您需要确保您使用的是正确的 C++ 编译器并且它是 C++11+。
如果您使用的是 msvc 并且使用的是正确的版本,那么这应该是一个内置功能。
【讨论】:
以上是关于Qt5 msvc 2010不识别自动(c ++ 11)[重复]的主要内容,如果未能解决你的问题,请参考以下文章