Externalizing sharing brings more flexibility indeed, but at the price
of more complexity on the user side, ie. less convenience...

Philippe

On Wed, 22 Mar 2017 11:22:37 +0100
Marc Mutz <[email protected]> wrote:

> On 2017-03-22 10:36, Edward Welbourne wrote:
> > On Wednesday 22 March 2017 07:37:27 Thiago Macieira wrote:
> >>> Another thing I'd want is for QStringView to carry the pointer to the
> >>> QArrayData like QString does.
> > > Marc Mutz (22 March 2017 09:27)
> >> NAK to inheriting from QStringView, publicly or privately. NAK to
> >> adding another pointer.
> > > Is there scope for a common (perhaps private) base, to be used by (at
> > least) QString and QStringView, something along the lines of a Java
> > interface ?
> 
> No. Sharing of functionality is best done with free functions. That makes the 
> functionality available to the user independent of any particular class, and 
> allows code sharing by templates, too, across, say QPoint and QPointF. Or 
> QString and QByteArray. Or QStringView and QLatin1String and QUtf8String...
> 
> > The design of string classes always amuses me: every text-book on
> > object-oriented design (that I've seen) launches into it as an example
> > and *all* of them give results that I wouldn't want to use in > production
> > code.  The problem turns out to be *hard* because we do such a lot with
> > strings; and allocation *isn't* a negligible cost.  Much of what's hard
> > about it is subtle: I've yet to see a string class I thought was Good.
> > Good luck in your efforts to break that pattern ;^>
> 
> If you mentally remove all the complexity caused by CoW and by not having 
> QStringView and QUtf8String, then QString comes pretty close. I'd remove 
> split() and toHtmlEscaped(), replacing them with a QStringTokenizer and 
> qToHtmlEscaped(), but otherwise, it's the best I've seen so far.
> 
> Thanks,
> Marc
> 
> _______________________________________________
> Development mailing list
> [email protected]
> http://lists.qt-project.org/mailman/listinfo/development


_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to