[Development] Qt6 source changes

Sascha Cunz sascha at cunz-rad.co.uk
Thu Nov 1 11:58:17 CET 2018


On 2018-10-31 16:46, Thiago Macieira wrote:
> Qt6 won't be fully source-compatible. The idea is that we'll break it 
> to fix
> things, but attempt to keep compatible as much as possible to avoid 
> death by a
> thousand paper cuts.

Does this rule out some kind of smart pointer that would be used to hold 
QObject*?

I've seen lots of commercial code bases in the past where QObject 
inheriting classes are combined with QExplicitlySharedDataPointer - 
while at the same time relying on having a parent in those QObjects.

Semantically:
- There's some class for which QObject benefits like Signals/Slots are 
required

- They are strongly owned by some other QObject based entity

- A lot of code stores a reference to them (In terms of a QESDP), where 
either:
   - the reference _should_ be invalidated during destruction
   - the existence of such reference (to a child) _should_ stop the 
parent from destroying that child.

- The overhead of QPointer is not desirable

I know these requirements are kind of a paradox. But both variants of 
this are a pattern, I find relatively often in customer's code bases.
I would really like to have an easy way to give such customers a "sane" 
way forward.

Sascha



More information about the Development mailing list