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
|
QScopedValueRollback
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit QScopedValueRollback(T &var)
|
explicit constexpr QScopedValueRollback(T &var)
|
||||||
: varRef(var), oldValue(var)
|
: varRef(var), oldValue(var)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
explicit QScopedValueRollback(T &var, T value)
|
explicit constexpr QScopedValueRollback(T &var, T value)
|
||||||
: varRef(var), oldValue(std::move(var))
|
: varRef(var), oldValue(qExchange(var, std::move(value)))
|
||||||
{
|
{
|
||||||
varRef = std::move(value);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if __cpp_constexpr >= 201907L
|
||||||
|
constexpr
|
||||||
|
#endif
|
||||||
~QScopedValueRollback()
|
~QScopedValueRollback()
|
||||||
{
|
{
|
||||||
varRef = std::move(oldValue);
|
varRef = std::move(oldValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
void commit()
|
constexpr void commit()
|
||||||
{
|
{
|
||||||
oldValue = varRef;
|
oldValue = varRef;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user