QVariant
(需要用于 QSettings
类) 支持从 QMap<QString, QVariant>
创建
但是尝试初始化类似以下的内容:
QMap<QString, QVariant(QMap<QString, QVariant>)> i;
给出以下错误信息:
返回函数的函数。
然后我尝试使用QVariant()
的QMap<QString, QVariant>
重载,结果出现了以下错误:
现在我尝试了一下类型转换:error: no matching function for call to
QVariant::QVariant(QMap<QString, QMap<QString, int> >&)
QMap<QString, (QVariant)QMap<QString, QVariant> > i;
并且得到了:
模板参数2无效
在';
'标记之前的声明中类型无效
那么,将嵌套的QMap
转换为QVariant
对象所需的步骤是什么?
QVariant(QMap<QString, QVariant>)
是一个函数类型,因为std::function
(来自C++0x)将其作为函数类型接受,但实际上它更加复杂-- std :: function使其看起来像一个函数类型,而实际上它使用了部分特化和可变参数模板来使其工作。 - Ken Bloom