diff options
author | Olivier Goffart <ogoffart@woboq.com> | 2012-04-25 11:09:48 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-20 03:17:55 +0200 |
commit | 958aaf377069368ce409db3f09a6ac3e38af7de2 (patch) | |
tree | baf9c866d5946bbabefcf6149c226a9ad023b49d | |
parent | e4505acd12435f1b7d0dabe79823ccb7e26011e9 (diff) |
Add qMove macro to support std::move
Change-Id: I373e07f479c11b172dab35ed7e5b62724aa50a1a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r-- | src/corelib/global/qcompilerdetection.h | 6 | ||||
-rw-r--r-- | src/corelib/global/qglobal.cpp | 8 | ||||
-rw-r--r-- | tests/auto/other/collections/tst_collections.cpp | 3 |
3 files changed, 17 insertions, 0 deletions
diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index 8621d8b400..68c8f73fe3 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -779,4 +779,10 @@ # endif #endif +#ifdef Q_COMPILER_RVALUE_REFS +#define qMove(x) std::move(x) +#else +#define qMove(x) (x) +#endif + #endif // QCOMPILERDETECTION_H diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 1bc02e0a70..900859141d 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -3006,4 +3006,12 @@ bool QInternal::activateCallbacks(Callback cb, void **parameters) {Debugging Techniques} */ +/*! + \macro qMove(x) + \relates <QtGlobal> + + It expands to "std::move" if your compiler supports that C++11 function, or to nothing + otherwise. +*/ + QT_END_NAMESPACE diff --git a/tests/auto/other/collections/tst_collections.cpp b/tests/auto/other/collections/tst_collections.cpp index 26e3ccfce4..f9905ce669 100644 --- a/tests/auto/other/collections/tst_collections.cpp +++ b/tests/auto/other/collections/tst_collections.cpp @@ -2556,6 +2556,9 @@ void testContainer() c1 = newInstance<Container>(); QVERIFY(c1.size() == 4); QVERIFY(c1 == newInstance<Container>()); + Container c2 = qMove(c1); + QVERIFY(c2.size() == 4); + QVERIFY(c2 == newInstance<Container>()); } } |