[Development] What's the status of a moved-from object?

Simon Hausmann Simon.Hausmann at qt.io
Thu May 23 09:36:08 CEST 2019


Hi,

I favor a well-formed (null) state over a partially-formed state. I agree with the suggestion of adding null pointer checks into member functions where applicable.

I think a well-formed state is more likely to enable our users to have a productive time. Operating - by accident - on a partially-formed object and either

    (1) seeing a back-trace that points into Qt, not my application code

    (2) spending time in the debugger stepping through Qt code

is IMHO a direction that we should avoid.


Simon
________________________________
From: Development <development-bounces at qt-project.org> on behalf of Giuseppe D'Angelo via Development <development at qt-project.org>
Sent: Sunday, May 19, 2019 14:24
To: development at qt-project.org
Subject: [Development] What's the status of a moved-from object?

Hi,

I'm trying to find a resolution for

> https://codereview.qt-project.org/#/c/261564/

TL;DR: the patch removes the move constructor from QColorSpace, because
that move constructor leaves the moved-from object in a partially-formed
state.

I have nothing against that idea (on the contrary), but I am against the
principle of introducing such inconsistencies in Qt without a previous
agreement.

Hence, I'll ask here: what should the status of a moved-from object be?
I'm not really interested in _how_ to achieve such status (although of
course it's very important, and should influence the decision); I'm
interested in what's our contract with our users.

A few datapoints for discussion are in the patch comments.

Thanks,
--
Giuseppe D'Angelo | giuseppe.dangelo at kdab.com | Senior Software Engineer
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.com
KDAB - The Qt, C++ and OpenGL Experts

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20190523/cccb307a/attachment.html>


More information about the Development mailing list