On 20/05/2020 13.15, Lars Knoll wrote:
On 20 May 2020, at 17:34, Matthew Woehlke wrote:
On 20/05/2020 09.11, Lars Knoll wrote:
Here’s what we will do:
* QList and QVector are aliases for each other
* We make QList the main type, and QVector an alias to it
* We keep both names, QList and QVector. None of them is deprecated

While I don't object to this as such, can someone remind me what is
the solution for people that *need* the semantics of old QList
(either reference stability or indirect allocation)?

There’s an option to provide a Q5List in qt5compat.

That's IMO a lousy option.

Of course one could also add a new class to Qt 6 that always
allocates indirectly.

This would be much better. I thought there had been talk of doing such?

But in that case I would propose to redesign it, so that is uses
block allocations to avoid at least some of the overhead of QList in
Qt 5.

That sounds like std::colony, which has different trade-offs; in particular, it cannot be indexed (no random access). I don't necessarily object to such a container type (although if we do get std::colony, there is less of an argument for it), but if I have to choose one, I would prefer to keep Qt5 QList as it was, especially as that is much more feasible due to the additional work of adding a new type.

Also, will the new QVector/QList have the prepend optimization of
old QList?

Yes, see https://bugreports.qt.io/browse/QTBUG-84320

Cool, thanks for the info.

--
Matthew
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to