QEasingCurve: implement move constructor
authorMarc Mutz <marc.mutz@kdab.com>
Sat, 18 Feb 2012 10:45:45 +0000 (11:45 +0100)
committerQt by Nokia <qt-info@nokia.com>
Tue, 21 Feb 2012 14:28:40 +0000 (15:28 +0100)
commit3a8da4a4843d787e9bf12973bf1fcf4da793558d
tree9a87d13388a5a83213df03af84531f6046d2375c
parent6a6178702e8af97b943c728f1cb4ab20233835a2
QEasingCurve: implement move constructor

The move constructor sets other.d_ptr to zero. This is safe, because
after being moved from, the object is left in a state in which it
can be safely destroyed (delete nullptr is a no-op).

It cannot meaningfully be used anymore (most members will crash with
a nullptr dereference), but in most cases, the moved-from object
cannot be accessed anyway (not a named object), and if a named object
is moved from, it must have been through explicit std::move(), as in
the test case.

The STL makes better guarantees (moved-from containers are .empty()),
but I don't think it's worth introducing a null state into
QEasingCurve just for supporting a use-case that should be
considered a bug anyway.

Change-Id: I4115b7386cdea6960507da6843a0d0196d8e4139
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/tools/qeasingcurve.h
tests/auto/corelib/tools/qeasingcurve/tst_qeasingcurve.cpp