8template<concepts::Copyable T>
11 constexpr explicit ScopeValueChange(T& value, T new_value) : m_value(value), m_old_value(value) {
12 m_value = util::move(new_value);
16 : m_value(other.m_value)
17 , m_old_value(
util::move(other.m_old_value))
24 constexpr void release() { m_released =
true; }
29 bool m_released {
false };
Definition scope_value_change.h:9
auto operator=(ScopeValueChange &&) -> ScopeValueChange &=delete
constexpr ScopeValueChange(ScopeValueChange &&other)
Definition scope_value_change.h:15
constexpr ~ScopeValueChange()
Definition scope_value_change.h:20
constexpr ScopeValueChange(T &value, T new_value)
Definition scope_value_change.h:11
constexpr void release()
Definition scope_value_change.h:24
constexpr auto exchange(T &object, U &&new_value) -> T
Definition exchange.h:8
ScopeValueChange(T &, T) -> ScopeValueChange< T >
Definition zstring_parser.h:9