FTXUI
6.1.9
C++ functional terminal UI.
载入中...
搜索中...
未找到
autoreset.hpp
浏览该文件的文档.
1
// 版权所有 2020 Arthur Sonzogni。保留所有权利。
2
// 此源代码的使用受 MIT 许可协议的约束,该协议可在
3
// LICENSE 文件中找到。
4
#ifndef FTXUI_UTIL_AUTORESET_HPP
5
#define FTXUI_UTIL_AUTORESET_HPP
6
7
#include <utility>
8
9
namespace
ftxui
{
10
11
/// 为变量赋值,当超出作用域时恢复其旧值。
12
template
<
typename
T>
13
class
AutoReset
{
14
public
:
15
AutoReset
(T* variable, T new_value)
16
: variable_(variable), previous_value_(std::move(*variable)) {
17
*variable_ = std::move(new_value);
18
}
19
AutoReset
(
const
AutoReset
&) =
delete
;
20
AutoReset
(
AutoReset
&&) =
delete
;
21
AutoReset
&
operator=
(
const
AutoReset
&) =
delete
;
22
AutoReset
&
operator=
(
AutoReset
&&) =
delete
;
23
~AutoReset
() { *variable_ = std::move(previous_value_); }
24
25
private
:
26
T* variable_;
27
T previous_value_;
28
};
29
30
}
// namespace ftxui
31
32
#endif
/* end of include guard: FTXUI_UTIL_AUTORESET_HPP */
ftxui::AutoReset
为变量赋值,当超出作用域时恢复其旧值。
定义
autoreset.hpp:13
ftxui::AutoReset::AutoReset
AutoReset(const AutoReset &)=delete
ftxui::AutoReset::operator=
AutoReset & operator=(AutoReset &&)=delete
ftxui::AutoReset::operator=
AutoReset & operator=(const AutoReset &)=delete
ftxui::AutoReset::AutoReset
AutoReset(AutoReset &&)=delete
ftxui::AutoReset::~AutoReset
~AutoReset()
定义
autoreset.hpp:23
ftxui::AutoReset::AutoReset
AutoReset(T *variable, T new_value)
定义
autoreset.hpp:15
ftxui
#include "ftxui/component/component_base.hpp" // 用于 ComponentBase
定义
animation.hpp:9