Ich habe seltsame Beobachtungen beim Vergleich QVariant
s mit QStringList
s innen.QVariants mit QStringList Vergleich
Code:
QStringList l1, l2;
l1 << "";
l2 << "33" << "434";
const bool le = l1 < l2;
const bool ge = l1 > l2;
const bool eq = l1 == l2;
QVariant v1(l1), v2(l2);
const bool vle = v1 < v2;
const bool vge = v1 > v2;
const bool veq = v1 == v2;
Als ich l1
meine Vergleichsergebnisse ändern (le
, ge
und eq
) haben Werte erwartet. Aber es beeinflusst die Ergebnisse für Varianten überhaupt nicht. Ich bekomme immer vge
== wahr, vle
und veq
sind immer falsch.
Docs sagen, es sollte funktionieren. Bin ich irgendwo falsch oder ist es Qt Bug? Ich benutze Qt5.7.
EDIT
ich einen Fehlerbericht für dieses Problem ausgefüllt haben: https://bugreports.qt.io/browse/QTBUG-54893
Ich würde sagen, Sie sollten nicht erwarten, vernünftigen Vergleich zwischen QVariants, aber Jedenfalls vermute ich, dass es sich um einen Bug handelt, siehe die Implementierung: https://code.woboq.org/qt5/qtbase/src/corelib/kernel/qvariant.cpp.html#_ZNK8QVariant7compareERKS_ – peppe