QDebug seem to not find overload ? - QMap
Solved
General and Desktop
-
Hey
So I have this function :
struct myTestColor { double h, s, v; inline QColor toColor() { QColor c; c.setHsv(h, s, v); return c; } }; inline QDebug &operator<<(QDebug &deb, QMap<QString, myTestColor> &style) { deb << "\n\tSize : " << style.size(); deb << "\n\tKeys : " << style.keys(); int x = 0; for (auto &key:style.keys()) { deb << "\n\t" << ++x << " (" << key << " : " << style[key].toColor() << "),"; } return deb; } inline QDebug &operator<<(QDebug &deb, QMap<QString, QMap<QString, myTestColor>> &style) { deb << "\nSize : " << style.size(); deb << "\nKeys : " << style.keys(); int x = 0; for (auto &key:style.keys()) { deb << "\n" << ++x << " (" << key << " : " << style[key] << "\n),"; } return deb; } inline QDebug &operator<<(QDebug &deb, myTestColor &style) { deb << style.toColor(); return deb; }
and this container:
QMap<QString,QMap<QString,myTestColor>> mList;
if I do
qDebug()<<mList;
without having the 2 specific QMap qDebug overloads I get an debug error cant find matching bla bla bla... Its as if QMap debug could not find
inline QDebug &operator<<(QDebug &deb, myTestColor &style)
in first place and needed exact debug...This looks very strange to me and I never had that before... I think, its super weird! What did I do wrong here?
-