YSTest: ystdex::observer_ptr< _type > 模板类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 类型 | Public 成员函数 | Private 属性 | 友元 | 所有成员列表
ystdex::observer_ptr< _type > 模板类 参考

观察者指针：无所有权的智能指针。 更多...

`#include <pointer.hpp>`

类 ystdex::observer_ptr< _type > 继承关系图:
[图例]
ystdex::observer_ptr< _type > 的协作图:
[图例]

## Public 类型

using | element_type = _type
using | pointer = add_ptr_t< _type >
using | reference = add_ref_t< _type >

## Public 成员函数

| observer_ptr (pointer p)
template<typename _tOther >
| observer_ptr (observer_ptr< _tOther > other)
reference | operator* () const
pointer | operator-> () const
| operator bool () const
| operator pointer () const
pointer | get () const
pointer | release ()
void | reset (pointer p={})
void | swap (observer_ptr &other)
| observer_ptr ()=default
| observer_ptr (nullptr_t)

## Private 属性

_type * | ptr {}

## 友元

bool | operator== (observer_ptr p, nullptr_t)

## 详细描述

### template<typename _type>
class ystdex::observer_ptr< _type >

观察者指针：无所有权的智能指针。

自从
  build 669

参见
  WG21 N4529 8.12[memory.observer.ptr] 。

在文件 pointer.hpp 第 201 行定义.

## 成员类型定义说明

template<typename _type>

using ystdex::observer_ptr< _type >::element_type = _type

在文件 pointer.hpp 第 205 行定义.

template<typename _type>

using ystdex::observer_ptr< _type >::pointer = add_ptr_t<_type>

在文件 pointer.hpp 第 206 行定义.

template<typename _type>

using ystdex::observer_ptr< _type >::reference = add_ref_t<_type>

在文件 pointer.hpp 第 207 行定义.

## 构造及析构函数说明

template<typename _type>

ystdex::observer_ptr< _type >::observer_ptr | ( |  | ) |

inlinedefault

后置条件
  `get() == nullptr` 。

template<typename _type>

ystdex::observer_ptr< _type >::observer_ptr | ( | nullptr_t |  | ) |

inline

在文件 pointer.hpp 第 218 行定义.

template<typename _type>

ystdex::observer_ptr< _type >::observer_ptr | ( | pointer | p | ) |

inlineexplicit

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

template<typename _type>
template<typename _tOther >

ystdex::observer_ptr< _type >::observer_ptr | ( | observer_ptr< _tOther > | other | ) |

inline

在文件 pointer.hpp 第 228 行定义.

## 成员函数说明

template<typename _type>

pointer ystdex::observer_ptr< _type >::get | ( |  | ) | const

inline

在文件 pointer.hpp 第 265 行定义.

参考 ystdex::observer_ptr< _type >::ptr.

template<typename _type>

ystdex::observer_ptr< _type >::operator bool | ( |  | ) | const

inlineexplicit

在文件 pointer.hpp 第 253 行定义.

参考 ystdex::observer_ptr< _type >::ptr.

template<typename _type>

ystdex::observer_ptr< _type >::operator pointer | ( |  | ) | const

inlineexplicit

在文件 pointer.hpp 第 259 行定义.

参考 ystdex::observer_ptr< _type >::ptr.

template<typename _type>

reference ystdex::observer_ptr< _type >::operator* | ( |  | ) | const

inline

前置条件
  断言： `get() != nullptr` 。

在文件 pointer.hpp 第 234 行定义.

参考 ystdex::observer_ptr< _type >::ptr , 以及 yconstraint.

template<typename _type>

pointer ystdex::observer_ptr< _type >::operator-> | ( |  | ) | const

inline

在文件 pointer.hpp 第 240 行定义.

参考 ystdex::observer_ptr< _type >::ptr.

template<typename _type>

pointer ystdex::observer_ptr< _type >::release | ( |  | ) |

inline

在文件 pointer.hpp 第 271 行定义.

参考 ystdex::observer_ptr< _type >::ptr , 以及 ystdex::observer_ptr< _type >::reset().

函数调用图:
template<typename _type>

void ystdex::observer_ptr< _type >::reset | ( | pointer | p = `{}` | ) |

inline

在文件 pointer.hpp 第 280 行定义.

参考自 ystdex::observer_ptr< _type >::release().

这是这个函数的调用关系图:
template<typename _type>

void ystdex::observer_ptr< _type >::swap | ( | observer_ptr< _type > & | other | ) |

inline

在文件 pointer.hpp 第 286 行定义.

参考 CHRLib::CharSet::other, ystdex::observer_ptr< _type >::ptr , 以及 ystdex::swap().

函数调用图:

## 友元及相关函数文档

template<typename _type>

bool operator== | ( | observer_ptr< _type > | p,
|  | nullptr_t |
| ) |  |

friend

自从
  build 675

在文件 pointer.hpp 第 247 行定义.

## 类成员变量说明

template<typename _type>

_type* ystdex::observer_ptr< _type >::ptr {}

private

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

参考自 ystdex::observer_ptr< _type >::get(), ystdex::observer_ptr< _type >::operator bool(), ystdex::observer_ptr< _type >::operator pointer(), ystdex::observer_ptr< _type >::operator*(), ystdex::observer_ptr< _type >::operator->(), ystdex::observer_ptr< _type >::release() , 以及 ystdex::observer_ptr< _type >::swap().

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

- pointer.hpp