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

YSTest PreAlpha_b900_20201012 The YSLib Test Project

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

可空指针包装：满足 `NullablePointer` 要求同时满足转移后为空。 更多...

`#include <pointer.hpp>`

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

## Public 类型

using | pointer = _type

## Public 成员函数

| nptr ()=default
| nptr (std::nullptr_t)
| nptr (pointer p)
| nptr (const nptr &)=default
| nptr (nptr &&np)
nptr & | operator= (const nptr &)=default
nptr & | operator= (nptr &&np)
bool | operator! () const
template<typename _tPtr = pointer>
auto | operator* () -> typename details::nptr_eq_checks< _tPtr >::reference
template<typename _tPtr = const pointer>
auto | operator* () const -> typename details::nptr_eq_checks< _tPtr >::reference
pointer & | operator-> ()
const pointer & | operator-> () const
| operator bool () const
const pointer & | get () const
pointer & | get_ref ()
void | swap (nptr &np)

## Private 属性

pointer | ptr {}

## 友元

bool | operator== (const nptr &x, const nptr &y)
bool | operator< (const nptr &x, const nptr &y)

## 相关函数

(请注意: 这些不是成员函数.)
template<typename _type >
void | swap (nptr< _type > &x, nptr< _type > &y)

## 详细描述

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

可空指针包装：满足 `NullablePointer` 要求同时满足转移后为空。

自从
  build 560

模板参数

  _type | 被包装的指针。

前置条件
  _type 满足 `NullablePointer` 要求。

注解
  支持不完整元素类型，当且仅当被包装的指针支持不完整元素类型。

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

## 成员类型定义说明

## ◆ pointer

template<typename _type >

using ystdex::nptr< _type >::pointer = _type

自从
  build 630

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

## 构造及析构函数说明

## ◆ nptr() [1/5]

template<typename _type >

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

default

## ◆ nptr() [2/5]

template<typename _type >

ystdex::nptr< _type >::nptr | ( | std::nullptr_t |  | ) |

inline

自从
  build 628

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

## ◆ nptr() [3/5]

template<typename _type >

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

inline

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

## ◆ nptr() [4/5]

template<typename _type >

ystdex::nptr< _type >::nptr | ( | const nptr< _type > & |  | ) |

default

## ◆ nptr() [5/5]

template<typename _type >

ystdex::nptr< _type >::nptr | ( | nptr< _type > && | np | ) |

inline

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

## 成员函数说明

## ◆ get()

template<typename _type >

const pointer& ystdex::nptr< _type >::get | ( |  | ) | const

inline

自从
  build 566

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

## ◆ get_ref()

template<typename _type >

pointer& ystdex::nptr< _type >::get_ref | ( |  | ) |

inline

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

## ◆ operator bool()

template<typename _type >

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

inlineexplicit

自从
  build 628

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

## ◆ operator!()

template<typename _type >

bool ystdex::nptr< _type >::operator! | ( |  | ) | const

inline

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

## ◆ operator*() [1/2]

template<typename _type >
template<typename _tPtr = pointer>

auto ystdex::nptr< _type >::operator* | ( |  | ) | -> typename details::nptr_eq_checks<_tPtr>::reference

inline

注解
  不直接限定返回类型以支持定义时 pointer 指向的元素是不完整类型。

自从
  build 863

前置条件
  表达式 `*ptr` 合式。

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

## ◆ operator*() [2/2]

template<typename _type >
template<typename _tPtr = const pointer>

auto ystdex::nptr< _type >::operator* | ( |  | ) | const -> typename details::nptr_eq_checks<_tPtr>::reference

inline

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

## ◆ operator->() [1/2]

template<typename _type >

pointer& ystdex::nptr< _type >::operator-> | ( |  | ) |

inline

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

## ◆ operator->() [2/2]

template<typename _type >

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

inline

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

## ◆ operator=() [1/2]

template<typename _type >

nptr& ystdex::nptr< _type >::operator= | ( | const nptr< _type > & |  | ) |

default

## ◆ operator=() [2/2]

template<typename _type >

nptr& ystdex::nptr< _type >::operator= | ( | nptr< _type > && | np | ) |

inline

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

## ◆ swap()

template<typename _type >

void ystdex::nptr< _type >::swap | ( | nptr< _type > & | np | ) |

inline

注解
  使用 ADL swap 或 std::swap 。

自从
  build 628

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

## 友元及相关函数文档

## ◆ operator<

template<typename _type >

bool operator< | ( | const nptr< _type > & | x,
|  | const nptr< _type > & | y
| ) |  |

friend

自从
  build 600

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

## ◆ operator==

template<typename _type >

bool operator== | ( | const nptr< _type > & | x,
|  | const nptr< _type > & | y
| ) |  |

friend

自从
  build 600

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

## ◆ swap()

template<typename _type >

void swap | ( | nptr< _type > & | x,
|  | nptr< _type > & | y
| ) |  |

related

自从
  build 563

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

## 类成员变量说明

## ◆ ptr

template<typename _type >

pointer ystdex::nptr< _type >::ptr {}

private

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

被这些函数引用 ystdex::nptr< link_type >::get(), ystdex::nptr< link_type >::get_ref(), ystdex::nptr< link_type >::operator bool(), ystdex::nptr< link_type >::operator*(), ystdex::nptr< link_type >::operator->() , 以及 ystdex::nptr< link_type >::swap().

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

- pointer.hpp