On quarta-feira, 2 de maio de 2012 10.21.36, Giuseppe D'Angelo wrote:
> In a related patch I suggested something like
>
> int QRegExp::foo() const
> {
>   QRegExp copy = *this;
>   return copy.foo();
> }
>
> which although being source compatible, is behaviour incompatible
> (QRegExp users do expect const methods to change the object -- it's
> even documented!).

Indeed, so I think this is actually worse of the three options.

Reverting completely means we accept that QRegExp is fundamentally flawed and
people should port away from it immediately. I'd even tack a notice to the
class saying that its const methods are not thread-safe.

Adding Olivier's patch means we do a little work to improve code in an
otherwise Done class, with the ability to keep the old code compiling if one
so wishes (with the same bugs, of course).

Adding yours would mean silently changing behaviour. That's far worse.

> So it's a matter of deciding what's the least worst option.

--
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
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to