FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
autoreset.hpp
Go to the documentation of this file.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// このソースコードの使用は、LICENSEファイルにあるMITライセンスに準拠しています。
3#ifndef FTXUI_UTIL_AUTORESET_HPP
4#define FTXUI_UTIL_AUTORESET_HPP
5
6#include <utility>
7
8namespace ftxui {
9
10/// 変数に値を割り当て、スコープを抜けるときに古い値をリセットします。
11template <typename T>
12class AutoReset {
13 public:
14 AutoReset(T* variable, T new_value)
15 : variable_(variable), previous_value_(std::move(*variable)) {
16 *variable_ = std::move(new_value);
17 }
18 AutoReset(const AutoReset&) = delete;
19 AutoReset(AutoReset&&) = delete;
20 AutoReset& operator=(const AutoReset&) = delete;
22 ~AutoReset() { *variable_ = std::move(previous_value_); }
23
24 private:
25 T* variable_;
26 T previous_value_;
27};
28
29} // namespace ftxui
30
31#endif /* end of include guard: FTXUI_UTIL_AUTORESET_HPP */
変数に値を割り当て、スコープを抜けるときに古い値をリセットします。
Definition autoreset.hpp:12
AutoReset(const AutoReset &)=delete
AutoReset & operator=(AutoReset &&)=delete
AutoReset & operator=(const AutoReset &)=delete
AutoReset(AutoReset &&)=delete
AutoReset(T *variable, T new_value)
Definition autoreset.hpp:14
FTXUI ftxui:: 名前空間
Definition animation.hpp:9