From bf3649d6391e232e3dfe7e897b643fa4fb1ae73c Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Thu, 24 Sep 2020 02:20:59 +0200 Subject: QScopedValueRollback: code tidies Add constexpr + deploy std::exchange. Change-Id: I4c5e6f5d35cd74c464667f633344d27c0656f0eb Reviewed-by: Allan Sandfeld Jensen --- src/corelib/tools/qscopedvaluerollback.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/corelib/tools/qscopedvaluerollback.h b/src/corelib/tools/qscopedvaluerollback.h index b8ceff6665..d076b67330 100644 --- a/src/corelib/tools/qscopedvaluerollback.h +++ b/src/corelib/tools/qscopedvaluerollback.h @@ -52,23 +52,25 @@ class QScopedValueRollback { public: - explicit QScopedValueRollback(T &var) + explicit constexpr QScopedValueRollback(T &var) : varRef(var), oldValue(var) { } - explicit QScopedValueRollback(T &var, T value) - : varRef(var), oldValue(std::move(var)) + explicit constexpr QScopedValueRollback(T &var, T value) + : varRef(var), oldValue(qExchange(var, std::move(value))) { - varRef = std::move(value); } +#if __cpp_constexpr >= 201907L + constexpr +#endif ~QScopedValueRollback() { varRef = std::move(oldValue); } - void commit() + constexpr void commit() { oldValue = varRef; } -- cgit v1.2.3