On Thursday 17 July 2014 13:33:49 Daniel Teske wrote: > A equals operator that is not symetric is broken. Such a class cannot be > reliably used in std nor qt containers. Or do you know which way around, > QList::contains uses the equals operation?
Note that none of the class which have a member operator== is symmetric. Most of the class had an operator== as a member in Qt4 but that was a design mistake. New classes should have a friend operator== instead. Example: qDebug() << (QUrl() == QString()); // true qDebug() << (QString() == QUrl()); // compilation error That's because QUrl has a bool QUrl::operator==(const QUrl&); Instead of bool operator==(const QUrl &, const QUrl&); The later is symmetric, but the former is not. This is also valid for operator< and related. (That was just to go a bit more out of topic :-)) -- Olivier Woboq - Qt services and support - http://woboq.com - http://code.woboq.org _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development