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

YSTest PreAlpha_b800_20170810 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 类列表
- 类索引
- 类继承关系
- 类成员

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 成员函数

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

## Private 类型

using | base = details::state_guard_impl< _type, _tToken >
Private 类型 继承自 ystdex::details::state_guard_impl< _type, _tToken >
using | base = tagged_value< _tToken, _type >
using | token_type = _tToken
using | value_type = _type
Private 类型 继承自 ystdex::tagged_value< _tToken, _type >
using | token_type = _tToken
using | value_type = _type

## Private 属性

condition_type | enabled {}
Private 属性 继承自 ystdex::tagged_value< _tToken, _type >
token_type | token
union {
empty_base empty
_type value
}; |

## 额外继承的成员函数

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

## 详细描述

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

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

自从
  build 569

警告
  非虚析构。

待办事项:

  支持分配器。

  支持有限的复制和转移。

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

## 成员类型定义说明

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

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

private

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

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

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

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

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

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

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

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

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

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

## 构造及析构函数说明

template<typename _type, typename _tCond = bool, typename _tToken = std::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 第 297 行定义.

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

函数调用图:
template<typename _type, typename _tCond = bool, typename _tToken = std::function<void(bool, _type&)>>

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

inline

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

参考 ystdex::state_guard< _type, _tCond, _tToken >::enabled , 以及 ystdex::details::state_guard_impl< _type, _tToken >::restore_and_destroy().

函数调用图:

## 成员函数说明

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

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

inline

自从
  build 630

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

参考 ystdex::tagged_value< _tToken, _type >::destroy() , 以及 ystdex::state_guard< _type, _tCond, _tToken >::enabled.

参考自 YSLib::UI::FileBox::SetPath().

函数调用图:

这是这个函数的调用关系图:
template<typename _type, typename _tCond = bool, typename _tToken = std::function<void(bool, _type&)>>

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

inline

自从
  build 718

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

## 类成员变量说明

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

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

private

自从
  build 692

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

参考自 ystdex::state_guard< _type, _tCond, _tToken >::dismiss(), ystdex::state_guard< _type, _tCond, _tToken >::state_guard() , 以及 ystdex::state_guard< _type, _tCond, _tToken >::~state_guard().

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

- scope_guard.hpp