朋友里一段代码用到了QList<std::tuple<QString,
QString, quint64> >这种
数据类型,但是我拿到VC2012下
编译的时候这段代码狂报错:
- E:\Qt5.1.1-MSVC2012-x64\include\QtCore\qtypeinfo.h:65: 错误:C2027: 使用了未定义类型“std::tuple<<unnamed-symbol>,_V0_t,_V1_t>”
- with
- [
- <unnamed-symbol>=QString,
- _V0_t=QString,
- _V1_t=quint64
- ]
- ..\..\Qt5.1.1-MSVC2012-x64\include\QtCore/qlist.h(418): 参见对正在编译的类 模板 实例化“QTypeInfo<T>”的引用
- with
- [
- T=MemberSection
- ]
- ..\..\Qt5.1.1-MSVC2012-x64\include\QtCore/qlist.h(417): 编译类 模板 成员函数“void QList<T>::node_destruct(QList<T>::Node *,QList<T>::Node *)”时
- with
- [
- T=MemberSection
- ]
- ..\..\Qt5.1.1-MSVC2012-x64\include\QtCore/qlist.h(762): 参见对正在编译的函数 模板 实例化“void QList<T>::node_destruct(QList<T>::Node *,QList<T>::Node *)”的引用
- with
- [
- T=MemberSection
- ]
- ..\..\Qt5.1.1-MSVC2012-x64\include\QtCore/qlist.h(760): 编译类 模板 成员函数“void QList<T>::dealloc(QListData::Data *)”时
- with
- [
- T=MemberSection
- ]
- ..\..\Qt5.1.1-MSVC2012-x64\include\QtCore/qlist.h(737): 参见对正在编译的函数 模板 实例化“void QList<T>::dealloc(QListData::Data *)”的引用
- with
- [
- T=MemberSection
- ]
- ..\..\Qt5.1.1-MSVC2012-x64\include\QtCore/qlist.h(735): 编译类 模板 成员函数“QList<T>::~QList(void)”时
- with
- [
- T=MemberSection
- ]
- .\main.cpp(14): 参见对正在编译的函数 模板 实例化“QList<T>::~QList(void)”的引用
- with
- [
- T=MemberSection
- ]
- .\main.cpp(14): 参见对正在编译的类 模板 实例化“QList<T>”的引用
- with
- [
- T=MemberSection
- ]
我也确实知道VC2012对c++11的支持很渣,但是至少tuple单独使用是没
问题的,但是没想到碰到
QList就完蛋了。这个算不算Qt的一个bug呢?有
没有什么解决方法(哪怕是改Qt代码)?
环境Qt版本5.1.1,VS2012 update3,Windows8 Pro