On segunda-feira, 20 de fevereiro de 2012 14.34.57, andre.poen...@nokia.com
wrote:
> Thiago Macieira [thiago.macie...@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
of QT_COORD_TYPE.

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
> rain.

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
in QT_DEPRECATED_SINCE(5,0):

#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;
#  else
Q_DECL_DEPRECATED typedef double qreal;
#  endif
#endif

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

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to