[Development] Changing qreal to a float
thiago.macieira at intel.com
Mon Feb 20 16:02:09 CET 2012
On segunda-feira, 20 de fevereiro de 2012 14.34.57, andre.poenitz at nokia.com
> Thiago Macieira [thiago.macieira at intel.com]
> > [...] How about we leave it defined to double in all platforms and
> > deprecate it?
> Replacing all 'qreal' occurrences with 'double' would be a significant
> performance hit for some embedded people. Replacing all 'qreal'
> occurrences with 'float' spoils the fun for some desktop people. [Replacing
> it with anything else would not help at all,] so (a) leaving qreal in the
> code _or_ (b) immediately add QRectD/QPolygonD/... substitutes are the only
> ways I see to deliver on the "you don't have to completely rewrite your
> code" promise for both sides.
We can't "fix" it unless we keep the current detection logic. Since it would be
a deprecated type anyway, we could keep the logic anyway -- minus the presence
I also thought we had agreed that QRectF should be float on all platforms and
we don't need double-precision geometric classes anyway.
> I have no strong opinion on which of (a) or (b) to choose, all I want to
> make sure is that we will neither force people to use doubles on ARM, even
> if they don't need it, nor force people currently relying on precise
> coordinates to use floats.
I don't think we can achieve that.
> As both (a) and (b) are both feasible approaches to solve the issue I don't
> see a reason to go for an approach that leaves either user group out in the
My proposal is (in-order):
1) replace qreal with double where it should have been double all along
(interfacing with system APIs that have double)
2) replace qreal everywhere else with float
3) remove the #ifdef QT_COORD_TYPE check in qglobal.h
4) add Q_DECL_DEPRECATED to the two typedef definitions of qreal and wrap them
#if QT_DEPRECATED_SINCE(5, 0)
# if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE)
Q_DECL_DEPRECATED typedef float qreal;
Q_DECL_DEPRECATED typedef double qreal;
5) (optional) add QRectD & family
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
Intel Sweden AB - Registration Number: 556189-6027
Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 190 bytes
Desc: This is a digitally signed message part.
More information about the Development