summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-09-24 02:20:59 +0200
committerGiuseppe D'Angelo <giuseppe.dangelo@kdab.com>2020-09-25 03:02:09 +0200
commitbf3649d6391e232e3dfe7e897b643fa4fb1ae73c (patch)
treeda43ce31a1cb028710212879292f8dac1463e43c
parent49517aad70675433df6519b2071d11e5ebaa209a (diff)
QScopedValueRollback: code tidies
Add constexpr + deploy std::exchange. Change-Id: I4c5e6f5d35cd74c464667f633344d27c0656f0eb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--src/corelib/tools/qscopedvaluerollback.h12
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;
}