QVariant (needed for QSettings class) supports creation from QMap<QString, QVariant>
But trying to initialise something like this:
QMap<QString, QVariant(QMap<QString, QVariant>)> i;
Gives the error:
function returning a function.
So then I tried the QMap<QString, QVariant> overload for QVariant() and got
error: no matching function for call to
QVariant::QVariant(QMap<QString, QMap<QString, int> >&)
Now I tried a typecast:
QMap<QString, (QVariant)QMap<QString, QVariant> > i;
and got
template argument 2 is invalid
invalid type in declaration before ‘;‘ token
So what’s the required voodoo to convert a nested QMap to a QVariant object?
The error being reported is that
QVariant(...)is not a type, but a function (c-tor).You should have just used:
Map<QString, QVariant> i;and usedQVariant(QMap<QString, QVariant>)only when assigning values to the map. The point isQVariantis anything really. So a map ofQVariants, can have anintin one position (contained in theQVariant) and aQDatein another. So when declaring the type, you can’t specify which types you wantQVariantto hold.