YSTest: ystdex::threading::lock_guard< _tMutex, bool, _tReference > 模板类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 类型 | Public 成员函数 | Private 属性 | 所有成员列表
ystdex::threading::lock_guard< _tMutex, bool, _tReference > 模板类 参考

`#include <pseudo_mutex.h>`

类 ystdex::threading::lock_guard< _tMutex, bool, _tReference > 继承关系图:
[图例]
ystdex::threading::lock_guard< _tMutex, bool, _tReference > 的协作图:
[图例]

## Public 类型

using | mutex_type = _tMutex
using | reference = _tReference

## Public 成员函数

| lock_guard (mutex_type &m)
| lock_guard (mutex_type &m, adopt_lock_t)
| ~lock_guard ()

## Private 属性

mutex_type & | owned

## 额外继承的成员函数

Private 成员函数 继承自 ystdex::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::nonmovable
| nonmovable (const nonmovable &)=default
| 允许复制构造。 更多...
| nonmovable (nonmovable &&)=delete
| 禁止转移构造。 更多...
nonmovable & | operator= (const nonmovable &)=default
| 允许复制赋值。 更多...
nonmovable & | operator= (nonmovable &&)=delete
| 禁止转移赋值。 更多...
| nonmovable ()=default
| `protected` 构造：默认实现。 更多...
| ~nonmovable ()=default
| `protected` 析构：默认实现。 更多...

## 详细描述

### template<class _tMutex, bool = true, typename _tReference = _tMutex&>
class ystdex::threading::lock_guard< _tMutex, bool, _tReference >

自从
  build 722

注解
  第一参数为存储的互斥量类型。
  第二参数决定是否进行检查，不检查时优化实现为空操作。

警告
  不检查时不保证线程安全：多线程环境下假定线程同步语义可能引起未定义行为。

前置条件
  _tReference 满足 BasicLockable 要求。
  静态断言： _tReference 使用 _tMutex 左值初始化保证无异常抛出。

注解
  第三参数为调用的引用类型。

警告
  非虚析构。

在文件 pseudo_mutex.h 第 222 行定义.

## 成员类型定义说明

template<class _tMutex , bool = true, typename _tReference = _tMutex&>

using ystdex::threading::lock_guard< _tMutex, bool, _tReference >::mutex_type = _tMutex

在文件 pseudo_mutex.h 第 228 行定义.

template<class _tMutex , bool = true, typename _tReference = _tMutex&>

using ystdex::threading::lock_guard< _tMutex, bool, _tReference >::reference = _tReference

在文件 pseudo_mutex.h 第 229 行定义.

## 构造及析构函数说明

template<class _tMutex , bool = true, typename _tReference = _tMutex&>

ystdex::threading::lock_guard< _tMutex, bool, _tReference >::lock_guard | ( | mutex_type & | m | ) |

inlineexplicit

前置条件
  若 mutex_type 非递归锁，调用线程不持有锁。

后置条件
  `std::addressof(owned) == std::addressof(m)` 。

在文件 pseudo_mutex.h 第 240 行定义.

template<class _tMutex , bool = true, typename _tReference = _tMutex&>

ystdex::threading::lock_guard< _tMutex, bool, _tReference >::lock_guard | ( | mutex_type & | m,
|  | adopt_lock_t |
| ) |  |

inline

前置条件
  调用线程持有锁。

后置条件
  `std::addressof(owned) == std::addressof(m)` 。

在文件 pseudo_mutex.h 第 249 行定义.

template<class _tMutex , bool = true, typename _tReference = _tMutex&>

ystdex::threading::lock_guard< _tMutex, bool, _tReference >::~lock_guard | ( |  | ) |

inline

在文件 pseudo_mutex.h 第 252 行定义.

## 类成员变量说明

template<class _tMutex , bool = true, typename _tReference = _tMutex&>

mutex_type& ystdex::threading::lock_guard< _tMutex, bool, _tReference >::owned

private

在文件 pseudo_mutex.h 第 232 行定义.

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

- pseudo_mutex.h