diff --git a/AK/TemporaryChange.h b/AK/TemporaryChange.h new file mode 100644 index 00000000000..274672a490c --- /dev/null +++ b/AK/TemporaryChange.h @@ -0,0 +1,18 @@ +#pragma once + +namespace AK { + +template +class TemporaryChange { +public: + TemporaryChange(T& variable, T value) : m_variable(variable), m_old_value(variable) { m_variable = value; } + ~TemporaryChange() { m_variable = m_old_value; } + +private: + T& m_variable; + T m_old_value; +}; + +} + +using AK::TemporaryChange;