YSTest: ystdex::state_guard< _type, _tCond, _tToken > 模板类 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Public 属性 | Private 类型 | Private 属性 | 所有成员列表
ystdex::state_guard< _type, _tCond, _tToken > 模板类 参考

使用临时状态暂存对象的作用域守卫。 更多...

`#include <scope_guard.hpp>`

类 ystdex::state_guard< _type, _tCond, _tToken > 继承关系图:
[图例]
ystdex::state_guard< _type, _tCond, _tToken > 的协作图:
[图例]

## Public 类型

using | condition_type = _tCond
using | value_type = _type
using | token_type = _tToken

## Public 成员函数

template<typename... _tParams>
| state_guard (condition_type cond, token_type t, _tParams &&... args)
| ~state_guard ()
void | dismiss ()
condition_type | has_value () const

## Public 属性

token_type | token
_type | value

## Private 类型

using | base = details::state_guard_impl< _type, _tToken >
Private 类型 继承自 ystdex::details::state_guard_impl< _type, function< void(bool, _type &)> >
using | base = tagged_value< function< void(bool, _type &)>, _type >
using | token_type = function< void(bool, _type &)>
using | value_type = _type
Private 类型 继承自 ystdex::tagged_value< function< void(bool, _type &)>, _type >
using | token_type = function< void(bool, _type &)>
using | value_type = _type

## Private 属性

condition_type | enabled {}
Private 属性 继承自 ystdex::details::state_guard_impl< _type, function< void(bool, _type &)> >
token_type | token
_type | value
Private 属性 继承自 ystdex::tagged_value< function< void(bool, _type &)>, _type >
token_type | token
empty_base | empty
_type | value
union {
empty_base empty
_type value
}; |

## 额外继承的成员函数

Private 成员函数 继承自 ystdex::details::state_guard_impl< _type, function< void(bool, _type &)> >
| state_guard_impl (token_type t)
void | construct_and_save (_tParams &&... args)
void | save ()
void | restore ()
void | restore_and_destroy ()
void | destroy ()
Private 成员函数 继承自 ystdex::tagged_value< function< void(bool, _type &)>, _type >
| tagged_value ()
| tagged_value (default_init_t)
| tagged_value (token_type t)
| tagged_value (token_type t, in_place_t, _tParams &&... args)
| tagged_value (const tagged_value &v)
| ~tagged_value ()
| 析构：空实现。 更多...
void | construct (_tParams &&... args)
void | destroy ()
void | destroy_nothrow ()

## 详细描述

### template<typename _type, typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>
class ystdex::state_guard< _type, _tCond, _tToken >

使用临时状态暂存对象的作用域守卫。

自从
  build 569

警告
  非虚析构。

待办事项:

  支持分配器。

  支持有限的复制和转移。

在文件 scope_guard.hpp 第 272 行定义.

## 成员类型定义说明

## ◆ base

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

using ystdex::state_guard< _type, _tCond, _tToken >::base = details::state_guard_impl<_type, _tToken>

private

在文件 scope_guard.hpp 第 278 行定义.

## ◆ condition_type

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

using ystdex::state_guard< _type, _tCond, _tToken >::condition_type = _tCond

在文件 scope_guard.hpp 第 283 行定义.

## ◆ token_type

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

using ystdex::tagged_value< _tToken, _type >::token_type = _tToken

在文件 placement.hpp 第 209 行定义.

## ◆ value_type

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

using ystdex::tagged_value< _tToken, _type >::value_type = _type

在文件 placement.hpp 第 210 行定义.

## 构造及析构函数说明

## ◆ state_guard()

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>
template<typename... _tParams>

ystdex::state_guard< _type, _tCond, _tToken >::state_guard | ( | condition_type | cond,
|  | token_type | t,
|  | _tParams &&... | args
| ) |  |

inline

自从
  build 586

在文件 scope_guard.hpp 第 296 行定义.

引用了 CHRLib::args, ystdex::details::state_guard_impl< _type, _tToken >::construct_and_save(), ystdex::state_guard< _type, _tCond, _tToken >::enabled , 以及 yforward.

函数调用图:

## ◆ ~state_guard()

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

ystdex::state_guard< _type, _tCond, _tToken >::~state_guard | ( |  | ) |

inline

在文件 scope_guard.hpp 第 307 行定义.

引用了 ystdex::state_guard< _type, _tCond, _tToken >::enabled , 以及 ystdex::details::state_guard_impl< _type, _tToken >::restore_and_destroy().

函数调用图:

## 成员函数说明

## ◆ dismiss()

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

void ystdex::state_guard< _type, _tCond, _tToken >::dismiss | ( |  | ) |

inline

自从
  build 630

在文件 scope_guard.hpp 第 317 行定义.

引用了 ystdex::tagged_value< _tToken, _type >::destroy() , 以及 ystdex::state_guard< _type, _tCond, _tToken >::enabled.

被这些函数引用 YSLib::UI::FileBox::SetPath(), YSLib::UI::SwapLocationOf() , 以及 YSLib::UI::SwapSizeOf().

函数调用图:
这是这个函数的调用关系图:

## ◆ has_value()

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

condition_type ystdex::state_guard< _type, _tCond, _tToken >::has_value | ( |  | ) | const

inline

自从
  build 718

在文件 scope_guard.hpp 第 326 行定义.

## 类成员变量说明

## ◆ enabled

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

condition_type ystdex::state_guard< _type, _tCond, _tToken >::enabled {}

private

自从
  build 692

在文件 scope_guard.hpp 第 290 行定义.

被这些函数引用 ystdex::state_guard< _type, _tCond, _tToken >::dismiss(), ystdex::state_guard< _type, _tCond, _tToken >::state_guard() , 以及 ystdex::state_guard< _type, _tCond, _tToken >::~state_guard().

## ◆ token

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

token_type ystdex::tagged_value< _tToken, _type >::token

在文件 placement.hpp 第 212 行定义.

## ◆ value

template<typename _type , typename _tCond = bool, typename _tToken = function<void(bool, _type&)>>

_type ystdex::tagged_value< _tToken, _type >::value

mutable

在文件 placement.hpp 第 213 行定义.

被这些函数引用 YSLib::UI::SwapLocationOf() , 以及 YSLib::UI::SwapSizeOf().

该类的文档由以下文件生成:

- scope_guard.hpp