-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
5.5.1
-
None
-
Windows, Visual Studio 2013 x64.
Normally, two double values representing infinity with the same sign should compare equal. However, when wrapped in a QVariant this fails.
#include <limits>
#include <QDebug>
#include <QVariant>
int main(void)
{
const double myInf = std::numeric_limits<double>::infinity();
qDebug() << "Compare 1.23" << ( QVariant( 1.23 ) == QVariant( 1.23 ) );
qDebug() << "Compare double Inf" << ( ( myInf ) == ( myInf ) );
qDebug() << "Compare QVariant Inf" << ( QVariant( myInf ) == QVariant( myInf ) );
}
Output:
Compare 1.23 true
Compare double Inf true
Compare QVariant Inf false
The last comparion should be "true".
This bug is a regression - in Qt5.3.2 it was fine.