YSTest: ystdex::details::state_guard_impl< _type, _tToken > 模板结构体 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | Public 属性 | 所有成员列表
ystdex::details::state_guard_impl< _type, _tToken > 模板结构体 参考

`#include <scope_guard.hpp>`

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

## Public 类型

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

## Public 成员函数

| state_guard_impl (token_type t)
template<typename... _tParams>
void | construct_and_save (_tParams &&... args)
void | save ()
void | restore ()
void | restore_and_destroy ()
void | destroy ()
Public 成员函数 继承自 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 ()

## Public 属性

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

## 额外继承的成员函数

Private 成员函数 继承自 ystdex::bases::noncopyable
| noncopyable (const noncopyable &)=delete
| 禁止复制构造。 更多...
| noncopyable (noncopyable &&)=default
| 允许转移构造。 更多...
noncopyable & | operator= (const noncopyable &)=delete
| 禁止复制赋值。 更多...
noncopyable & | operator= (noncopyable &&)=default
| 允许转移赋值。 更多...
| noncopyable ()=default
| `protected` 构造：默认实现。 更多...
| ~noncopyable ()=default
| `protected` 析构：默认实现。 更多...
静态 Private 成员函数 继承自 ystdex::details::state_guard_traits< _type, _tToken >
static void | save (_tToken t, _type &val)
static void | restore (_tToken t, _type &val)

## 详细描述

### template<typename _type, typename _tToken>
struct ystdex::details::state_guard_impl< _type, _tToken >

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

## 成员类型定义说明

## ◆ base

template<typename _type , typename _tToken >

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

自从
  build 718

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

## ◆ token_type

template<typename _type , typename _tToken >

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

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

## ◆ value_type

template<typename _type , typename _tToken >

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

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

## 构造及析构函数说明

## ◆ state_guard_impl()

template<typename _type , typename _tToken >

ystdex::details::state_guard_impl< _type, _tToken >::state_guard_impl | ( | token_type | t | ) |

inline

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

## 成员函数说明

## ◆ construct_and_save()

template<typename _type , typename _tToken >
template<typename... _tParams>

void ystdex::details::state_guard_impl< _type, _tToken >::construct_and_save | ( | _tParams &&... | args | ) |

inline

自从
  build 586

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

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

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

## ◆ destroy()

template<typename _type , typename _tToken >

void ystdex::tagged_value< _tToken, _type >::destroy

inline

自从
  build 718

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

## ◆ restore()

template<typename _type , typename _tToken >

void ystdex::details::state_guard_impl< _type, _tToken >::restore | ( |  | ) |

inline

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

被这些函数引用 ystdex::details::state_guard_impl< _type, function< void(bool, _type &)> >::restore_and_destroy().

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

## ◆ restore_and_destroy()

template<typename _type , typename _tToken >

void ystdex::details::state_guard_impl< _type, _tToken >::restore_and_destroy | ( |  | ) |

inline

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

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

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

## ◆ save()

template<typename _type , typename _tToken >

void ystdex::details::state_guard_impl< _type, _tToken >::save | ( |  | ) |

inline

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

被这些函数引用 ystdex::details::state_guard_impl< _type, function< void(bool, _type &)> >::construct_and_save().

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

## 类成员变量说明

## ◆ token

template<typename _type , typename _tToken >

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

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

## ◆ value

template<typename _type , typename _tToken >

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

mutable

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

该结构体的文档由以下文件生成:

- scope_guard.hpp