mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-11-30 07:26:51 +08:00
23 lines
485 B
C++
23 lines
485 B
C++
|
#ifndef FTXUI_UTIL_AUTORESET_HPP
|
||
|
#define FTXUI_UTIL_AUTORESET_HPP
|
||
|
|
||
|
namespace ftxui {
|
||
|
|
||
|
template<typename T>
|
||
|
class AutoReset {
|
||
|
public:
|
||
|
AutoReset(T* variable, T new_value)
|
||
|
: variable_(variable),
|
||
|
previous_value_(std::move(*variable)) {
|
||
|
*variable_ = std::move(new_value);
|
||
|
}
|
||
|
~AutoReset() { *variable_ = std::move(previous_value_); }
|
||
|
private:
|
||
|
T* variable_;
|
||
|
T previous_value_;
|
||
|
};
|
||
|
|
||
|
} // namespace ftxui
|
||
|
|
||
|
#endif /* end of include guard: FTXUI_UTIL_AUTORESET_HPP */
|