diff options
author | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-09-24 02:20:59 +0200 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-09-25 03:02:09 +0200 |
commit | bf3649d6391e232e3dfe7e897b643fa4fb1ae73c (patch) | |
tree | da43ce31a1cb028710212879292f8dac1463e43c /src/corelib/tools/qscopedvaluerollback.h | |
parent | 49517aad70675433df6519b2071d11e5ebaa209a (diff) |
QScopedValueRollback: code tidies
Add constexpr + deploy std::exchange.
Change-Id: I4c5e6f5d35cd74c464667f633344d27c0656f0eb
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/corelib/tools/qscopedvaluerollback.h')
-rw-r--r-- | src/corelib/tools/qscopedvaluerollback.h | 12 |
1 files changed, 7 insertions, 5 deletions
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; } |