QEasingCurve: implement move-assignment operator
Implemented as in QPen etc. Change-Id: I65b43c6ec7308ca4b44f614594c15c41ab2f89f9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
5d6b2d5e34
commit
6a6178702e
@ -83,6 +83,10 @@ public:
|
||||
~QEasingCurve();
|
||||
|
||||
QEasingCurve &operator=(const QEasingCurve &other);
|
||||
#ifdef Q_COMPILER_RVALUE_REFS
|
||||
QEasingCurve &operator=(QEasingCurve &&other)
|
||||
{ qSwap(d_ptr, other.d_ptr); return *this; }
|
||||
#endif
|
||||
|
||||
inline void swap(QEasingCurve &other) { qSwap(d_ptr, other.d_ptr); }
|
||||
|
||||
|
@ -43,6 +43,10 @@
|
||||
|
||||
#include <qeasingcurve.h>
|
||||
|
||||
#ifdef Q_COMPILER_RVALUE_REFS // cpp11() slot
|
||||
# include <utility> // for std::move()
|
||||
#endif
|
||||
|
||||
class tst_QEasingCurve : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -61,6 +65,7 @@ private slots:
|
||||
void tcbSpline();
|
||||
void testCbrtDouble();
|
||||
void testCbrtFloat();
|
||||
void cpp11();
|
||||
};
|
||||
|
||||
void tst_QEasingCurve::type()
|
||||
@ -770,5 +775,19 @@ void tst_QEasingCurve::testCbrtFloat()
|
||||
}
|
||||
}
|
||||
|
||||
void tst_QEasingCurve::cpp11()
|
||||
{
|
||||
#ifdef Q_COMPILER_RVALUE_REFS
|
||||
{
|
||||
QEasingCurve ec( QEasingCurve::InOutBack );
|
||||
QEasingCurve copy;
|
||||
const QEasingCurve::Type type = copy.type();
|
||||
copy = std::move(ec); // move assignment op
|
||||
QCOMPARE( copy.type(), QEasingCurve::InOutBack );
|
||||
QCOMPARE( ec.type(), type );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QEasingCurve)
|
||||
#include "tst_qeasingcurve.moc"
|
||||
|
Loading…
Reference in New Issue
Block a user