[Development] Question about QCoreApplicationData::*_libpaths

Thiago Macieira thiago.macieira at intel.com
Tue Jan 19 18:34:48 CET 2016

On Tuesday 19 January 2016 19:16:25 Marc Mutz wrote:
> That may be so. But most of what is _missing_ is implementable in Qt 5:
> - equal_range on hashed containers

No idea what that is.

> - range inserts, ctors, assignments

Already done for QVector for Qt6. However, since I wrote this on top of 
QGenericArray, I can't push it to Qt 5.

> - exception safety guarantees

Done since Qt 5.0 by João, but missed the release deadline. It's QGenericArray 
using QArrayDataPointer and QArrayDataOps.

Also, we changed our policy towards exception-safety since 5.0 and this work 
is no longer needed.

> - move semantics on realloc / insertions

This is easy to implement in QArrayDataOps. However, due to CoW, we'd have to 
duplicate the code paths depending on whether the refcount was 1 or not. 
That's a runtime decision, so I don't think this is worth it.

> - emplace (with Q_COMPILER_UNIFORM_INIT ifdef)

Done in QGenericArray, but not really relevant since we don't support move-
only types.

> - not requiring op= / default ctor in QVector

Not interesting to me.

> - move-only payload types (hard with CoW)


> - splicing in node-based containers (hard with CoW)

Ditto and no one has asked this in 10 years that QLinkedList has existed.

> - atomic operations on QSharedPointer

Explain more, please.

> - alias ctors for QSharedPointer


> - changing iterator → const_iterator in insert / erase argumentsis
>   (hampered by QT_STRICT_ITERATORS preventing iterator → const_iterator
>   implicit conversions, otherwise one could write erase loops over
> node-based containers that only detach when actually removing an element)

Sounds like a Qt 6 change. Adding overloads is possible.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

More information about the Development mailing list