QScopedValueRollback: code tidies
Add constexpr + deploy std::exchange. Change-Id: I4c5e6f5d35cd74c464667f633344d27c0656f0eb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
This commit is contained in:
parent
49517aad70
commit
bf3649d639
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user