diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-02-04 01:16:35 +0100 |
---|---|---|
committer | Rafael Roquetto <rafael.roquetto@kdab.com> | 2015-02-04 18:38:52 +0000 |
commit | 83a3292342f70ba3bdc636c38031c6a1a74646c3 (patch) | |
tree | 84f4f673ba9a24aec5efd492e51910e064f8fc50 | |
parent | 2e1a76a594c19d23263bb6dae616588eaaf602e3 (diff) |
QPair: work around std::move not being constexpr in C++11
Use a static_cast instead. This is not 100% equivalent,
since it's missing remove_reference<>, which we don't want
to depend on and whose emulation in qtypetraits.h is missing
rvalue support.
That will be fixed in dev.
Change-Id: Ib03754c81c904932943d3a5415b54ff107f4719d
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-rw-r--r-- | src/corelib/tools/qpair.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/corelib/tools/qpair.h b/src/corelib/tools/qpair.h index b2217e4dd0..76b7abd263 100644 --- a/src/corelib/tools/qpair.h +++ b/src/corelib/tools/qpair.h @@ -56,7 +56,9 @@ struct QPair { first = p.first; second = p.second; return *this; } #ifdef Q_COMPILER_RVALUE_REFS template <typename TT1, typename TT2> - Q_DECL_CONSTEXPR QPair(QPair<TT1, TT2> &&p) : first(std::move(p.first)), second(std::move(p.second)) {} + Q_DECL_CONSTEXPR QPair(QPair<TT1, TT2> &&p) + // can't use std::move here as it's not constexpr in C++11: + : first(static_cast<TT1 &&>(p.first)), second(static_cast<TT2 &&>(p.second)) {} template <typename TT1, typename TT2> QPair &operator=(QPair<TT1, TT2> &&p) { first = std::move(p.first); second = std::move(p.second); return *this; } |