统一的类成员初始化语法与std::initializer_list<T>

//C++ 98/03类成员变量是数组时的初始化语法
class A
{
public:
	A()
	{
		arr[0] = 2;
		arr[1] = 0;
		arr[2] = 1;
		arr[3] = 9;
	}
public:
	int arr[4];
};

//在 C++11中可以使用大括号语法初始化数组类型的成员变量
class A
{
public:
	A() :arr{ 2,0,1,9 }
	{

	}
public:
	int arr[4];
};
//在C++98/03标准中,对类的成员必须使用static const修饰,
//而且类型必须是整型(包括bool、char、int、long等),这样才能使用这种初始化语法
class A
{
public:
	//T的类型必须是整形,切必须使用static const修饰
	static const T t = _abs64;
};

//在C++11标准中就没有这种限制了,
//我们可以使用花括号(即{})对任意类型的变量进行初始化,而且不用是static类型
class A
{
public:
	bool ma{ true };
	int mb{ 2019 };
	std::string mc{ "helloworld" };
};

综上所述,在C++11标准中,无论是局部变量还是类变量,使用花括号({})初始化的语法被统一起来,写法也变得简洁.

        那么这种语法是如何实现的呢?如何在自定义类中也支持这种花括号呢?这就需要用到C++11新引入的对象std::initializer_list<T>了。它是一个模板对象,接收一个自定义参数类型 T,T既可以是基础数据类型(如编译器内置的 bool、char、int等),也可以是自定义的复杂数据类型。为了使用 std::initializer_list<T>,需要包含头文件,下面是一个例子:

#include<iostream >
#include <initializer_list>
#include<vector>
class A {
public:
	A(std::initializer_list<int> integers)
	{
		m_vecIntegers.insert(m_vecIntegers.end(),integers.begin(), integers.end());
	}
	~A()
	{}
	void append(std::initializer_list<int> integers)
	{
		m_vecIntegers.insert(m_vecIntegers.end(), integers.begin(), integers.end());
	}
		
	void print()
	{
		size_t size = m_vecIntegers.size(); 
		for (size_t i = 0; i < size; ++i)
			std::cout << m_vecIntegers[i] << std::endl;
	}
		
private:
	std::vector<int> m_vecIntegers;
};
int main(){
	A a{1,2,3};
	a.print();
	std::cout << "After appending..." << std::endl;
	a.append({ 4,5,6 });
	a.print();
	return 0;
}

json::array数据解析实现

#include<iostream>
#include<string>
#include<initializer_list>
#include<vector>

enum class jsonType
{
	jsonTypeNull,
	jsonTypeInt,
	jsonTypeLong,
	jsonTypeDouble,
	jsonTypeBool,
	jsonTypeString,
	jsonTypeArray,
	jsonTypeObject
};

struct jsonNode
{
	jsonNode(const char* key, const char* value):m_type(jsonType::jsonTypeString),m_key(key),m_value(value)
	{
		std::cout << "jsonNode contructorl call." << std::endl;
	}

	jsonNode(const char* key, double value):m_type(jsonType::jsonTypeDouble),m_key(key),m_value(std::to_string(value))
	{
		std::cout << "jsonNode contructorl2 call." << std::endl;
	}
	jsonType m_type;
	std::string m_key;
	//始终使用string类型保存值,避免浮点类型因为精度问题而显示不同的结果
	std::string m_value;
};

class json
{
public:
	static json& array(std::initializer_list<jsonNode> nodes)
	{
		m_json.m_nodes.clear();
		m_json.m_nodes.insert(m_json.m_nodes.end(), nodes.begin(), nodes.end());

		std::cout << "json::array() called." << std::endl;
		return m_json;
	}
	json()
	{

	}
	~json()
	{

	}

	std::string toString()
	{
		size_t size = m_nodes.size();
		for (size_t i=0;i< size;i++)
		{
			switch (m_nodes[i].m_type)
			{
			case jsonType::jsonTypeDouble:
				break;
			default:
				break;
			}
		}
	}

private:
	std::vector<jsonNode> m_nodes;
	static json m_json;
};

int main()
{
	json array_not_object = json::array({ {"currency","USD"},{"value",42.99} });
	return 0;
}

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
代码有个报错D:\Documents\ee\mainwindow.cpp:72: error: C2678: 二进制“<<”: 没有找到接受“QList<QVariant>”类型的左操作数的运算符(或没有可接受的转换) ..\..\mainwindow.cpp(72): 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(72): note: “QList<QVariant> &QList<QVariant>::operator <<(QVariant &&)”: 无法将参数 2 从“long”转换为“QVariant &&” ..\..\mainwindow.cpp(73): note: 原因如下: 无法从“long”转换为“T” with [ T=QVariant ] ..\..\mainwindow.cpp(73): 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(73): note: 尝试匹配参数列表“(long)”时 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlist.h(719): note: 或 “QList<QVariant> &QList<QVariant>::operator <<(QList<QVariant> &&)” ..\..\mainwindow.cpp(72): note: “QList<QVariant> &QList<QVariant>::operator <<(QList<QVariant> &&)”: 无法将参数 2 从“long”转换为“QList<QVariant> &&” ..\..\mainwindow.cpp(73): note: 原因如下: 无法从“long”转换为“QList<QVariant>” ..\..\mainwindow.cpp(73): 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(72): note: “QList<QVariant> &QList<QVariant>::operator <<(const QList<QVariant> &)”: 无法将参数 2 从“long”转换为“const QList<QVariant> &” ..\..\mainwindow.cpp(73): note: 原因如下: 无法从“long”转换为“const QList<QVariant>” ..\..\mainwindow.cpp(73): 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(72): note: “QList<QVariant> &QList<QVariant>::operator <<(const QVariant &)”: 无法将参数 2 从“long”转换为“const QVariant &” ..\..\mainwindow.cpp(73): note: 原因如下: 无法从“long”转换为“const T” with [ T=QVariant ] ..\..\mainwindow.cpp(73): 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(73): note: 尝试匹配参数列表“(long)”时 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlocale.h(1205): note: 或 “QDebug operator <<(QDebug,const QLocale &)” ..\..\mainwindow.cpp(72): note: “QDebug operator <<(QDebug,const QLocale &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qlocale.h(1200): note: 或 “QDataStream &operator <<(QDataStream &,const QLocale &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const MSG &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtAxContainer/qaxbase.h(154): note: 或 “QDataStream &operator <<(QDataStream &,const QAxBase &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QWidget *)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qcursor.h(99): note: 或 “QDebug operator <<(QDebug,const QCursor &)” ..\..\mainwindow.cpp(72): note: “QDebug operator <<(QDebug,const QCursor &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qcursor.h(94): note: 或 “QDataStream &operator <<(QDataStream &,const QCursor &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QSizePolicy &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtWidgets/qsizepolicy.h(108): note: 或 “QDataStream &operator <<(QDataStream &,const QSizePolicy &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QFont &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qfont.h(354): note: 或 “QDataStream &operator <<(QDataStream &,const QFont &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QPalette &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpalette.h(141): note: 或 “QDataStream &operator <<(QDataStream &,const QPalette &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QBrush &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qbrush.h(104): note: 或 “QDataStream &operator <<(QDataStream &,const QBrush &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QAction *)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(814): note: 或 “QDebug operator <<(QDebug,const QVariant::Type)” ..\..\mainwindow.cpp(72): note: “QDebug operator <<(QDebug,const QVariant::Type)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qvariant.h(734): note: 或 “QDataStream &operator <<(QDataStream &,const QVariant::Type)” ..\..\mainwindow.cpp(72): 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(72): 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(72): note: “QDebug operator <<(QDebug,QKeyCombination)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qtextstream.h(212): note: 或 “QTextStream &operator <<(QTextStream &,QTextStreamManipulator)” ..\..\mainwindow.cpp(72): 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(72): 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(72): note: “QDebug operator <<(QDebug,const QIcon &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qicon.h(260): note: 或 “QDataStream &operator <<(QDataStream &,const QIcon &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QPixmap &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpixmap.h(175): note: 或 “QDataStream &operator <<(QDataStream &,const QPixmap &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QImage &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qimage.h(335): note: 或 “QDataStream &operator <<(QDataStream &,const QImage &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QTransform &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qtransform.h(323): note: 或 “QDataStream &operator <<(QDataStream &,const QTransform &)” ..\..\mainwindow.cpp(72): 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(72): 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(72): note: “QDebug operator <<(QDebug,const QLineF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qline.h(184): note: 或 “QDataStream &operator <<(QDataStream &,const QLine &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QLine &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qregion.h(143): note: 或 “QDebug operator <<(QDebug,const QRegion &)” ..\..\mainwindow.cpp(72): note: “QDebug operator <<(QDebug,const QRegion &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qregion.h(109): note: 或 “QDataStream &operator <<(QDataStream &,const QRegion &)” ..\..\mainwindow.cpp(72): 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(72): 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(72): note: “QDebug operator <<(QDebug,const QPolygonF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qpolygon.h(73): note: 或 “QDataStream &operator <<(QDataStream &,const QPolygon &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QPolygon &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qcolor.h(26): note: 或 “QDataStream &operator <<(QDataStream &,const QColor &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QColor &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qrect.h(914): note: 或 “QDebug operator <<(QDebug,const QRectF &)” ..\..\mainwindow.cpp(72): note: “QDebug operator <<(QDebug,const QRectF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qrect.h(626): note: 或 “QDataStream &operator <<(QDataStream &,const QRectF &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QRect &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qrect.h(147): note: 或 “QDataStream &operator <<(QDataStream &,const QRect &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QPointF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qpoint.h(319): note: 或 “QDataStream &operator <<(QDataStream &,const QPointF &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QPoint &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qpoint.h(113): note: 或 “QDataStream &operator <<(QDataStream &,const QPoint &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QSizeF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qsize.h(308): note: 或 “QDataStream &operator <<(QDataStream &,const QSizeF &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QSize &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qsize.h(108): note: 或 “QDataStream &operator <<(QDataStream &,const QSize &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QKeySequence &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtGui/qkeysequence.h(21): note: 或 “QDataStream &operator <<(QDataStream &,const QKeySequence &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QMarginsF &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qmargins.h(357): note: 或 “QDataStream &operator <<(QDataStream &,const QMarginsF &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QMargins &)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qmargins.h(90): note: 或 “QDataStream &operator <<(QDataStream &,const QMargins &)” ..\..\mainwindow.cpp(72): 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(72): note: “QDebug operator <<(QDebug,const QObject *)”: 无法将参数 1 从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(682): note: 或 “QDataStream &operator <<(QDataStream &,QKeyCombination)” ..\..\mainwindow.cpp(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): note:初始化: 无法从“QList<QVariant>”转换为“QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdebug.h(483): note: 或 “QDebug operator <<(QDebug,const QTaggedPointer<T,Tag> &)” ..\..\mainwindow.cpp(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): 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(72): note:初始化: 无法从“QList<QVariant>”转换为“QDataStream &” C:\Qt\6.8.3\msvc2022_64\include\QtCore/qdatastream.h(517): note: 或 “QDataStream &operator <<(QDataStream &,QFlags<Enum>)” ..\..\mainwindow.cpp(72): 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(72): note:初始化: 无法从“QList<QVariant>”转换为“const QDebug &” ..\..\mainwindow.cpp(72): note: 原因如下: 无法从“QList<QVariant>”转换为“const QDebug” ..\..\mainwindow.cpp(72): note: 没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符 ..\..\mainwindow.cpp(72): note: 尝试匹配参数列表“(QList<QVariant>, long)”时
最新发布
11-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值