error C2244: “QMultiMap<Key,T>::insert”: 无法将函数定义与现有的声明匹配

在Win7 64位系统下使用VS2005集成QT4.2.2开发环境时遇到编译错误。主要涉及QMultiMap和QMultiHash的replace及insert函数定义与声明不匹配问题。提供了三种解决方案:修改源文件、升级到QT4.3.3或安装特定补丁。

win7 64bit 下使用vs 2005 集成qt 4.2.2 开发环境。运行程序发现如下错误:

waveview.cpp
1>c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(906) : error C2244: “QMultiMap<Key,T>::replace”: 无法将函数定义与现有的声明匹配
1>        c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(891) : 参见“QMultiMap<Key,T>::replace”的声明
1>        定义
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)'
1>        现有声明
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::replace(const Key &,const T &)'
1>c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(910) : error C2244: “QMultiMap<Key,T>::insert”: 无法将函数定义与现有的声明匹配
1>        c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qmap.h(892) : 参见“QMultiMap<Key,T>::insert”的声明
1>        定义
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)'
1>        现有声明
1>        'QMap<aKey,aT>::iterator QMultiMap<Key,T>::insert(const Key &,const T &)'
1>c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qhash.h(864) : error C2244: “QMultiHash<Key,T>::replace”: 无法将函数定义与现有的声明匹配
1>        c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qhash.h(849) : 参见“QMultiHash<Key,T>::replace”的声明
1>        定义
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::replace(const Key &,const T &)'
1>        现有声明
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::replace(const Key &,const T &)'
1>c:\qt\4.2.2\include\qtcore\../../src/VS80sp1.3-KB930859-X86-ENU.execorelib/tools/qhash.h(868) : error C2244: “QMultiHash<Key,T>::insert”: 无法将函数定义与现有的声明匹配
1>        c:\qt\4.2.2\include\qtcore\../../src/corelib/tools/qhash.h(850) : 参见“QMultiHash<Key,T>::insert”的声明
1>        定义
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::insert(const Key &,const T &)'
1>        现有声明
1>        'QHash<Key,T>::iterator QMultiHash<Key,T>::insert(const Key &,const T &)'


解决方法1:

replace in qmap.h:
Q_INLINE_TEMPLATE Q_TYPENAME QMap<Key, T>::iterator ...
with
Q_INLINE_TEMPLATE Q_TYPENAME QMultiMap<Key, T>::iterator ...
and in qhash.h
Q_INLINE_TEMPLATE Q_TYPENAME QHash<Key, T>::iterator ...
with
Q_INLINE_TEMPLATE Q_TYPENAME QMultiHash<Key, T>::iterator

 

解决方法2:

根据trolltech的声明,从qt 4.3.2以后,qt直接支持vc 6/vs 2003/5。

经验证:
Qt 4.3.3可以在VC 6.0 和 VS 2003及其以后产品中直接使用!

 

解决方案3:

之前没找对根源,囫囵吞枣。这个问题在xp+ vs2005 sp1上也同样出现,跟平台无关,是vs2005 sp1的bug,如果不升级sp1,不会出现这个问题;

解决方案是安装sp1后,再安装一个fix此bug的补丁,VS80sp1-KB930859-X86-ENU.exe



具体方法:
1 开源包编译Qt4.3.3;
2 设置windows环境变量:QTDIR, PATH
3 编写.pro文件;
4 生成vc/vs工程文件:
qmake -project -t vcapp -o project.pro
qmake
5 在该文件夹中打开所生成的vc/vs工程文件;
6 添加自己的源代码等事项;
7 Good luck and enjoying Qt……

参考

http://topic.youkuaiyun.com/u/20080712/10/d5fb55e3-4bb0-4f49-a676-272cb47ba4df.html

D:\Documents\ee\mainwindow.cpp:87: error: C2678: 二进制“<<”: 没有找到接受“QList<QVariant>”类型的左操作数的运算符(或没有可接受的转换) ..\..\mainwindow.cpp(87): error C2678: 二进制“<<”: 没有找到接受“QList<QVariant>”类型的左操作数的运算符(或没有可接受的转换) C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlist.h(723): note: 可能是“QList<QVariant> &QList<QVariant>::operator <<(QVariant &&)” ..\..\mainwindow.cpp(87): note: “QList<QVariant> &QList<QVariant>::operator <<(QVariant &&)”: 无法将参数 2 从“long”转换为“QVariant &&” ..\..\mainwindow.cpp(88): note: 原因如下: 无法从“long”转换为“T” with [ T=QVariant ] ..\..\mainwindow.cpp(88): note: “QVariant::QVariant”: 对重载函数的调用不明确 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(260): note: 可能是“QVariant::QVariant(float) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(259): note: 或 “QVariant::QVariant(double) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(258): note: 或 “QVariant::QVariant(bool) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(257): note: 或 “QVariant::QVariant(qulonglong) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(256): note: 或 “QVariant::QVariant(qlonglong) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(255): note: 或 “QVariant::QVariant(uint) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(254): note: 或 “QVariant::QVariant(int) noexcept” ..\..\mainwindow.cpp(88): note: 尝试匹配参数列表“(long)”时 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlist.h(719): note: 或 “QList<QVariant> &QList<QVariant>::operator <<(QList<QVariant> &&)” ..\..\mainwindow.cpp(87): note: “QList<QVariant> &QList<QVariant>::operator <<(QList<QVariant> &&)”: 无法将参数 2 从“long”转换为“QList<QVariant> &&” ..\..\mainwindow.cpp(88): note: 原因如下: 无法从“long”转换为“QList<QVariant>” ..\..\mainwindow.cpp(88): note: class“QList<QVariant>”的构造函数声明为“explicit” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlist.h(717): note: 或 “QList<QVariant> &QList<QVariant>::operator <<(const QList<QVariant> &)” ..\..\mainwindow.cpp(87): note: “QList<QVariant> &QList<QVariant>::operator <<(const QList<QVariant> &)”: 无法将参数 2 从“long”转换为“const QList<QVariant> &” ..\..\mainwindow.cpp(88): note: 原因如下: 无法从“long”转换为“const QList<QVariant>” ..\..\mainwindow.cpp(88): note: class“QList<QVariant>”的构造函数声明为“explicit” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlist.h(715): note: 或 “QList<QVariant> &QList<QVariant>::operator <<(const QVariant &)” ..\..\mainwindow.cpp(87): note: “QList<QVariant> &QList<QVariant>::operator <<(const QVariant &)”: 无法将参数 2 从“long”转换为“const QVariant &” ..\..\mainwindow.cpp(88): note: 原因如下: 无法从“long”转换为“const T” with [ T=QVariant ] ..\..\mainwindow.cpp(88): note: “QVariant::QVariant”: 对重载函数的调用不明确 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(260): note: 可能是“QVariant::QVariant(float) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(259): note: 或 “QVariant::QVariant(double) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(258): note: 或 “QVariant::QVariant(bool) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(257): note: 或 “QVariant::QVariant(qulonglong) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(256): note: 或 “QVariant::QVariant(qlonglong) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(255): note: 或 “QVariant::QVariant(uint) noexcept” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(254): note: 或 “QVariant::QVariant(int) noexcept” ..\..\mainwindow.cpp(88): note: 尝试匹配参数列表“(long)”时 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlocale.h(1205): note: 或 “QDebug operator <<(QDebug,const QLocale &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QLocale &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlocale.h(1200): note: 或 “QDataStream &operator <<(QDataStream &,const QLocale &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QLocale &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qcoreapplication.h(274): note: 或 “QDebug operator <<(QDebug,const MSG &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const MSG &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtAxContainer/qaxbase.h(154): note: 或 “QDataStream &operator <<(QDataStream &,const QAxBase &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QAxBase &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtWidgets/qwidget.h(921): note: 或 “QDebug operator <<(QDebug,const QWidget *)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QWidget *)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qcursor.h(99): note: 或 “QDebug operator <<(QDebug,const QCursor &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QCursor &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qcursor.h(94): note: 或 “QDataStream &operator <<(QDataStream &,const QCursor &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QCursor &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtWidgets/qsizepolicy.h(173): note: 或 “QDebug operator <<(QDebug,const QSizePolicy &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QSizePolicy &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtWidgets/qsizepolicy.h(108): note: 或 “QDataStream &operator <<(QDataStream &,const QSizePolicy &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QSizePolicy &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qfont.h(359): note: 或 “QDebug operator <<(QDebug,const QFont &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QFont &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qfont.h(354): note: 或 “QDataStream &operator <<(QDataStream &,const QFont &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QFont &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpalette.h(163): note: 或 “QDebug operator <<(QDebug,const QPalette &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QPalette &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpalette.h(141): note: 或 “QDataStream &operator <<(QDataStream &,const QPalette &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QPalette &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qbrush.h(109): note: 或 “QDebug operator <<(QDebug,const QBrush &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QBrush &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qbrush.h(104): note: 或 “QDataStream &operator <<(QDataStream &,const QBrush &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QBrush &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qaction.h(242): note: 或 “QDebug operator <<(QDebug,const QAction *)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QAction *)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(814): note: 或 “QDebug operator <<(QDebug,const QVariant::Type)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QVariant::Type)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(734): note: 或 “QDataStream &operator <<(QDataStream &,const QVariant::Type)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QVariant::Type)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(720): note: 或 “QDataStream &operator <<(QDataStream &,const QVariant &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QVariant &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(574): note: 或 “QDebug operator <<(QDebug,QKeyCombination)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,QKeyCombination)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qtextstream.h(212): note: 或 “QTextStream &operator <<(QTextStream &,QTextStreamManipulator)” ..\..\mainwindow.cpp(87): note: “QTextStream &operator <<(QTextStream &,QTextStreamManipulator)”: 无法将参数 1 从“QList<QVariant>”转换为“QTextStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qtextstream.h(209): note: 或 “QTextStream &operator <<(QTextStream &,QTextStreamFunction)” ..\..\mainwindow.cpp(87): note: “QTextStream &operator <<(QTextStream &,QTextStreamFunction)”: 无法将参数 1 从“QList<QVariant>”转换为“QTextStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qicon.h(277): note: 或 “QDebug operator <<(QDebug,const QIcon &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QIcon &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qicon.h(260): note: 或 “QDataStream &operator <<(QDataStream &,const QIcon &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QIcon &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpixmap.h(180): note: 或 “QDebug operator <<(QDebug,const QPixmap &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QPixmap &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpixmap.h(175): note: 或 “QDataStream &operator <<(QDataStream &,const QPixmap &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QPixmap &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qimage.h(340): note: 或 “QDebug operator <<(QDebug,const QImage &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QImage &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qimage.h(335): note: 或 “QDataStream &operator <<(QDataStream &,const QImage &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QImage &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qtransform.h(328): note: 或 “QDebug operator <<(QDebug,const QTransform &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QTransform &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qtransform.h(323): note: 或 “QDataStream &operator <<(QDataStream &,const QTransform &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QTransform &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qline.h(427): note: 或 “QDataStream &operator <<(QDataStream &,const QLineF &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QLineF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qline.h(423): note: 或 “QDebug operator <<(QDebug,const QLineF &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QLineF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qline.h(184): note: 或 “QDataStream &operator <<(QDataStream &,const QLine &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QLine &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qline.h(180): note: 或 “QDebug operator <<(QDebug,const QLine &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QLine &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qregion.h(143): note: 或 “QDebug operator <<(QDebug,const QRegion &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QRegion &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qregion.h(109): note: 或 “QDataStream &operator <<(QDataStream &,const QRegion &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QRegion &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpolygon.h(140): note: 或 “QDataStream &operator <<(QDataStream &,const QPolygonF &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QPolygonF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpolygon.h(133): note: 或 “QDebug operator <<(QDebug,const QPolygonF &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QPolygonF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpolygon.h(73): note: 或 “QDataStream &operator <<(QDataStream &,const QPolygon &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QPolygon &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpolygon.h(66): note: 或 “QDebug operator <<(QDebug,const QPolygon &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QPolygon &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qcolor.h(26): note: 或 “QDataStream &operator <<(QDataStream &,const QColor &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QColor &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qcolor.h(23): note: 或 “QDebug operator <<(QDebug,const QColor &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QColor &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qrect.h(914): note: 或 “QDebug operator <<(QDebug,const QRectF &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QRectF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qrect.h(626): note: 或 “QDataStream &operator <<(QDataStream &,const QRectF &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QRectF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qrect.h(479): note: 或 “QDebug operator <<(QDebug,const QRect &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QRect &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qrect.h(147): note: 或 “QDataStream &operator <<(QDataStream &,const QRect &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QRect &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qpoint.h(410): note: 或 “QDebug operator <<(QDebug,const QPointF &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QPointF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qpoint.h(319): note: 或 “QDataStream &operator <<(QDataStream &,const QPointF &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QPointF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qpoint.h(208): note: 或 “QDebug operator <<(QDebug,const QPoint &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QPoint &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qpoint.h(113): note: 或 “QDataStream &operator <<(QDataStream &,const QPoint &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QPoint &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qsize.h(409): note: 或 “QDebug operator <<(QDebug,const QSizeF &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QSizeF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qsize.h(308): note: 或 “QDataStream &operator <<(QDataStream &,const QSizeF &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QSizeF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qsize.h(203): note: 或 “QDebug operator <<(QDebug,const QSize &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QSize &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qsize.h(108): note: 或 “QDataStream &operator <<(QDataStream &,const QSize &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QSize &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtGui/qkeysequence.h(190): note: 或 “QDebug operator <<(QDebug,const QKeySequence &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QKeySequence &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qkeysequence.h(21): note: 或 “QDataStream &operator <<(QDataStream &,const QKeySequence &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QKeySequence &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qmargins.h(513): note: 或 “QDebug operator <<(QDebug,const QMarginsF &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QMarginsF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qmargins.h(357): note: 或 “QDataStream &operator <<(QDataStream &,const QMarginsF &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QMarginsF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qmargins.h(262): note: 或 “QDebug operator <<(QDebug,const QMargins &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QMargins &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qmargins.h(90): note: 或 “QDataStream &operator <<(QDataStream &,const QMargins &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QMargins &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qobject.h(479): note: 或 “QDebug operator <<(QDebug,const QObject *)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QObject *)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(682): note: 或 “QDataStream &operator <<(QDataStream &,QKeyCombination)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,QKeyCombination)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qstring.h(1492): note: 或 “QDataStream &operator <<(QDataStream &,const QString &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QString &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qbytearray.h(725): note: 或 “QDataStream &operator <<(QDataStream &,const QByteArray &)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,const QByteArray &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qchar.h(636): note: 或 “QDataStream &operator <<(QDataStream &,QChar)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,QChar)”: 无法将参数 1 从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(567): note: 或 “QDebug operator <<(QDebug,const QFlags<Enum> &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QFlags<Enum> &)”: 无法从“long”推导出“const QFlags<Enum> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(531): note: 或 “QDebug operator <<(QDebug,T)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,T)”: 无法推导“A”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(527): note: "type": 不是 "std::enable_if<false,void>" 的成员 C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.44.35207\include\xtr1common(48): note: 参见“std::enable_if<false,void>”的声明 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(527): note: 语法错误: 缺少“>”(在标识符“type”的前面) C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(519): note: 或 “std::enable_if<QtPrivate::IsQEnumHelper<T>::Value,QDebug>::type operator <<(QDebug,T)” ..\..\mainwindow.cpp(87): note: “初始化”: 无法从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(483): note: 或 “QDebug operator <<(QDebug,const QTaggedPointer<T,Tag> &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QTaggedPointer<T,Tag> &)”: 无法从“long”推导出“const QTaggedPointer<T,Tag> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(473): note: 或 “QDebug operator <<(QDebug,const QSharedPointer<T> &)” ..\..\mainwindow.cpp(87): note: “QDebug operator <<(QDebug,const QSharedPointer<T> &)”: 无法从“long”推导出“const QSharedPointer<T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(417): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const QContiguousCache<T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const QContiguousCache<T> &)”: 无法从“long”推导出“const QContiguousCache<T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(411): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QSet<T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QSet<T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QSet<T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QSet<T> &)”: 无法从“long”推导出“const QSet<T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(403): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::pair<_Ty1,_Ty2> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::pair<_Ty1,_Ty2> &)”: 无法从“long”推导出“const std::pair<_Ty1,_Ty2> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(393): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::optional<_Ty> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::optional<_Ty> &)”: 无法从“long”推导出“const std::optional<_Ty> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(387): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QMultiHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QMultiHash<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QMultiHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QMultiHash<Key,T> &)”: 无法从“long”推导出“const QMultiHash<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(381): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QHash<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QHash<Key,T> &)”: 无法从“long”推导出“const QHash<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(375): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QMultiMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QMultiMap<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QMultiMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QMultiMap<Key,T> &)”: 无法从“long”推导出“const QMultiMap<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(369): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QMap<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,std::disjunction<std::is_base_of<QMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QMap<Key,T> &)”: 无法从“long”推导出“const QMap<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(363): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::multimap<_Kty,_Ty,_Pr,_Alloc> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::multimap<_Kty,_Ty,_Pr,_Alloc> &)”: 无法从“long”推导出“const std::multimap<_Kty,_Ty,_Pr,_Alloc> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(357): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::map<_Kty,_Ty,_Pr,_Alloc> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>,QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::map<_Kty,_Ty,_Pr,_Alloc> &)”: 无法从“long”推导出“const std::map<_Kty,_Ty,_Pr,_Alloc> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(351): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,std::initializer_list<_Elem>)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,std::initializer_list<_Elem>)”: 无法从“long”推导出“std::initializer_list<_Elem>”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(345): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::list<_Ty,_Alloc> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::list<_Ty,_Alloc> &)”: 无法从“long”推导出“const std::list<_Ty,_Alloc> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(339): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::vector<_Ty,_Alloc> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const std::vector<_Ty,_Alloc> &)”: 无法从“long”推导出“const std::vector<_Ty,_Alloc> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(333): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const QVarLengthArray<T,Prealloc> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDebug,T,void>>,QDebug>::type operator <<(QDebug,const QVarLengthArray<T,Prealloc> &)”: 无法从“long”推导出“const QVarLengthArray<T,Prealloc> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(327): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QList<T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QList<T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QList<T>,T>,QTypeTraits::has_ostream_operator<QDebug,T,void>>>,QDebug>::type operator <<(QDebug,const QList<T> &)”: 无法从“long”推导出“const QList<T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(622): note: 或 “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDataStream,T,void>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,QDataStream&>::type operator <<(QDataStream &,const std::pair<_Ty1,_Ty2> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<QTypeTraits::has_ostream_operator<QDataStream,T,void>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,QDataStream&>::type operator <<(QDataStream &,const std::pair<_Ty1,_Ty2> &)”: 无法从“long”推导出“const std::pair<_Ty1,_Ty2> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(609): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QMultiMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QMultiMap<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QMultiMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QMultiMap<Key,T> &)”: 无法从“long”推导出“const QMultiMap<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(597): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QMap<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMap<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QMap<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QMap<Key,T> &)”: 无法从“long”推导出“const QMap<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(585): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QMultiHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QMultiHash<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QMultiHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QMultiHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QMultiHash<Key,T> &)”: 无法从“long”推导出“const QMultiHash<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(573): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QHash<Key,T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QHash<Key,T>,Key>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>,std::disjunction<std::is_base_of<QHash<Key,T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QHash<Key,T> &)”: 无法从“long”推导出“const QHash<Key,T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(560): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QSet<T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QSet<T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QSet<T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QSet<T> &)”: 无法从“long”推导出“const QSet<T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(548): note: 或 “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QList<T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QList<T> &)” ..\..\mainwindow.cpp(87): note: “enable_if<std::conjunction_v<std::disjunction<std::is_base_of<QList<T>,T>,QTypeTraits::has_ostream_operator<QDataStream,T,void>>>,QDataStream&>::type operator <<(QDataStream &,const QList<T> &)”: 无法从“long”推导出“const QList<T> &”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(531): note: 或 “enable_if<std::is_enum<_Ty>::value,QDataStream&>::type operator <<(QDataStream &,const T &)” ..\..\mainwindow.cpp(87): note: “初始化”: 无法从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(517): note: 或 “QDataStream &operator <<(QDataStream &,QFlags<Enum>)” ..\..\mainwindow.cpp(87): note: “QDataStream &operator <<(QDataStream &,QFlags<Enum>)”: 无法从“long”推导出“QFlags<Enum>”的 模板 参数 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(623): note: 或 “enable_if<std::is_same_v<T,QVariant>,QDebug>::type operator <<(const QDebug &,const T &)” ..\..\mainwindow.cpp(87): note: “初始化”: 无法从“QList<QVariant>”转换为“const QDebug &” ..\..\mainwindow.cpp(87): note: 原因如下: 无法从“QList<QVariant>”转换为“const QDebug” ..\..\mainwindow.cpp(87): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 ..\..\mainwindow.cpp(87): note: 尝试匹配参数列表“(QList<QVariant>, long)”时
11-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值