YSTest: YSLib::PointerHolder< _type, _tTraits > 模板类 参考

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 类型 | Public 成员函数 | Public 属性 | Protected 属性 | 所有成员列表
YSLib::PointerHolder< _type, _tTraits > 模板类 参考

带等于接口的指针类型动态泛型持有者。 更多...

`#include <YObject.h>`

类 YSLib::PointerHolder< _type, _tTraits > 继承关系图:
[图例]
YSLib::PointerHolder< _type, _tTraits > 的协作图:
[图例]

## Public 类型

using | value_type = _type
using | traits = _tTraits
using | holder_pointer = typename traits::holder_pointer
using | pointer = decltype(traits::get(std::declval< const holder_pointer & >()))
using | shared = typename traits::shared

## Public 成员函数

| PointerHolder (pointer value)
| 取得所有权。 更多...
| DefDeMoveCtor (PointerHolder) DefDeCopyAssignment(PointerHolder) DefDeMoveAssignment(PointerHolder) DefGetter(ynothrow
const holder_pointer p_held ystdex::any | Create (Creation c) const ImplI(IValueHolder)

## Public 属性

const holder_pointer | Held

## Protected 属性

holder_pointer | p_held

## 相关函数

(请注意: 这些不是成员函数.)
template<typename _tPointer >
using | HolderFromPointer = PointerHolder< typename PointerHolderTraits< _tPointer >::element_type, PointerHolderTraits< _tPointer >>
| PointerHolder (const holder_pointer &p)
| PointerHolder (holder_pointer &&p)
| PointerHolder (const PointerHolder &h)
| PointerHolder (const PointerHolder &h, ystdex::false_)
| PointerHolder (const PointerHolder &h, ystdex::true_)

## 详细描述

### template<typename _type, class _tTraits = PointerHolderTraits<unique_ptr<_type>>>
class YSLib::PointerHolder< _type, _tTraits >

带等于接口的指针类型动态泛型持有者。

模板参数

  _tPointer | 持有者指针类型。

前置条件
  _tPointer 具有 _type 对象所有权。

参见
  ystdex::pointer_holder

自从
  build 784

对被持有的对象独占或共享所有权的间接持有者。 第二参数指定持有者指针，支持内建指针及兼容 unique_ptr 和 shared_ptr 实例。

在文件 YObject.h 第 355 行定义.

## 成员类型定义说明

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

using YSLib::PointerHolder< _type, _tTraits >::holder_pointer = typename traits::holder_pointer

在文件 YObject.h 第 365 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

using YSLib::PointerHolder< _type, _tTraits >::pointer = decltype(traits::get(std::declval<const holder_pointer&>()))

在文件 YObject.h 第 367 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

using YSLib::PointerHolder< _type, _tTraits >::shared = typename traits::shared

自从
  build 783

在文件 YObject.h 第 369 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

using YSLib::PointerHolder< _type, _tTraits >::traits = _tTraits

自从
  build 784

在文件 YObject.h 第 364 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

using YSLib::PointerHolder< _type, _tTraits >::value_type = _type

自从
  build 332
  build 352

在文件 YObject.h 第 362 行定义.

## 构造及析构函数说明

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

YSLib::PointerHolder< _type, _tTraits >::PointerHolder | ( | pointer | value | ) |

inlineexplicit

取得所有权。

在文件 YObject.h 第 377 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

YSLib::PointerHolder< _type, _tTraits >::PointerHolder | ( | const holder_pointer & | p | ) |

inline

自从
  build 783

在文件 YObject.h 第 382 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

YSLib::PointerHolder< _type, _tTraits >::PointerHolder | ( | holder_pointer && | p | ) |

inline

在文件 YObject.h 第 385 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

YSLib::PointerHolder< _type, _tTraits >::PointerHolder | ( | const PointerHolder< _type, _tTraits > & | h | ) |

inline

自从
  build 352

在文件 YObject.h 第 390 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

YSLib::PointerHolder< _type, _tTraits >::PointerHolder | ( | const PointerHolder< _type, _tTraits > & | h,
|  | ystdex::false_ |
| ) |  |

inlineprivate

在文件 YObject.h 第 395 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

YSLib::PointerHolder< _type, _tTraits >::PointerHolder | ( | const PointerHolder< _type, _tTraits > & | h,
|  | ystdex::true_ |
| ) |  |

inlineprivate

在文件 YObject.h 第 398 行定义.

## 成员函数说明

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

const holder_pointer p_held ystdex::any YSLib::PointerHolder< _type, _tTraits >::Create | ( | Creation | c | ) | const

inline

自从
  build 761

在文件 YObject.h 第 416 行定义.

参考 ystdex::details::get(), CHRLib::p() , 以及 ystdex::throw_invalid_construction().

函数调用图:
template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

YSLib::PointerHolder< _type, _tTraits >::DefDeMoveCtor | ( | PointerHolder< _type, _tTraits > |  | ) |

自从
  build 352
  build 353
  build 793

## 类成员变量说明

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

const holder_pointer YSLib::PointerHolder< _type, _tTraits >::Held

在文件 YObject.h 第 412 行定义.

template<typename _type , class _tTraits = PointerHolderTraits<unique_ptr<_type>>>

holder_pointer YSLib::PointerHolder< _type, _tTraits >::p_held

protected

在文件 YObject.h 第 372 行定义.

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

- YObject.h