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

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

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

Public 类型 | Public 成员函数 | Private 类型 | Private 成员函数 | 所有成员列表
ystdex::optional< _type > 模板类 参考

可选值对象包装。 更多...

`#include <optional.h>`

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

## Public 类型

using | value_type = _type

## Public 成员函数

| optional ()
| optional (nullopt_t)
| optional (const _type &v)
| optional (_type &&v)
template<typename... _tParams>
| optional (in_place_t, _tParams &&...args)
template<typename _tOther , typename... _tParams, typename = enable_if_t<is_constructible<_type, std::initializer_list<_tOther>&, _tParams&&...>::value>>
| optional (in_place_t, std::initializer_list< _tOther > il, _tParams &&...args)
| optional (const optional &)=default
| optional (optional &&)=default
| ~optional ()=default
optional & | operator= (nullopt_t)
optional & | operator= (const optional &o)
optional & | operator= (optional &&o)
template<typename _tOther >
enable_if_t< is_same< decay_t< _tOther >, _type >::value, optional & > | operator= (_tOther &&v)
template<typename... _tParams>
void | emplace (_tParams &&...args)
template<typename _tOther , typename... _tParams>
void | emplace (std::initializer_list< _tOther > il, _tParams &&...args)
void | swap (optional &o)
_type * | operator-> ()
const _type * | operator-> () const
_type & | operator* ()&
const _type & | operator* () const &
_type && | operator* ()&&
_type && | operator* () const &&
| operator bool () const
_type & | value ()&
const _type & | value () const &
_type && | value ()&&
_type && | value () const &&
template<typename _tOther >
_type | value_or (_tOther &&other) const &
template<typename _tOther >
_type | value_or (_tOther &&other)&&

## Private 类型

using | base = details::optional_base< _type >

## Private 成员函数

base & | get_base ()
const base & | get_base () const
Private 成员函数 继承自 ystdex::details::optional_base< remove_cv_t< _type > >
| ~optional_base ()
optional_base & | operator= (const optional_base &s)
optional_base & | operator= (optional_base &&s)

## 详细描述

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

可选值对象包装。

注解
  值语义。基本接口和语义同 std::experimental::optional 提议 和 boost::optional （对应接口以前者为准）。

警告
  非虚析构。

参见
  WG21 N4606 20.6.3[optional.object] 。

待办事项:
  allocator_arg 支持。

在文件 optional.h 第 233 行定义.

## 成员类型定义说明

template<typename _type>

using ystdex::optional< _type >::base = details::optional_base<_type>

private

在文件 optional.h 第 250 行定义.

template<typename _type>

using ystdex::optional< _type >::value_type = _type

参见
  WG21 N4606 20.6.2[optional.synopsis]/1 。
  WG21 N4606 20.6.3[optional.object]/3 。

在文件 optional.h 第 247 行定义.

## 构造及析构函数说明

template<typename _type>

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

inline

在文件 optional.h 第 254 行定义.

template<typename _type>

ystdex::optional< _type >::optional | ( | nullopt_t |  | ) |

inline

在文件 optional.h 第 257 行定义.

template<typename _type>

ystdex::optional< _type >::optional | ( | const _type & | v | ) |

inline

在文件 optional.h 第 260 行定义.

template<typename _type>

ystdex::optional< _type >::optional | ( | _type && | v | ) |

inline

在文件 optional.h 第 264 行定义.

template<typename _type>
template<typename... _tParams>

ystdex::optional< _type >::optional | ( | in_place_t | ,
|  | _tParams &&... | args
| ) |  |

inlineexplicit

在文件 optional.h 第 269 行定义.

template<typename _type>
template<typename _tOther , typename... _tParams, typename = enable_if_t<is_constructible<_type, std::initializer_list<_tOther>&, _tParams&&...>::value>>

ystdex::optional< _type >::optional | ( | in_place_t | ,
|  | std::initializer_list< _tOther > | il,
|  | _tParams &&... | args
| ) |  |

inlineexplicit

在文件 optional.h 第 276 行定义.

template<typename _type>

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

default

template<typename _type>

ystdex::optional< _type >::optional | ( | optional< _type > && |  | ) |

default

template<typename _type>

ystdex::optional< _type >::~optional | ( |  | ) |

default

## 成员函数说明

template<typename _type>
template<typename... _tParams>

void ystdex::optional< _type >::emplace | ( | _tParams &&... | args | ) |

inline

在文件 optional.h 第 316 行定义.

参考 CHRLib::args, ystdex::construct(), ystdex::reset() , 以及 yforward.

函数调用图:
template<typename _type>
template<typename _tOther , typename... _tParams>

void ystdex::optional< _type >::emplace | ( | std::initializer_list< _tOther > | il,
|  | _tParams &&... | args
| ) |  |

inline

在文件 optional.h 第 323 行定义.

参考 CHRLib::args, ystdex::construct(), ystdex::reset() , 以及 yforward.

函数调用图:
template<typename _type>

base& ystdex::optional< _type >::get_base | ( |  | ) |

inlineprivate

在文件 optional.h 第 331 行定义.

参考自 ystdex::optional< _type >::operator=().

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

const base& ystdex::optional< _type >::get_base | ( |  | ) | const

inlineprivate

在文件 optional.h 第 336 行定义.

template<typename _type>

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

inlineexplicit

在文件 optional.h 第 397 行定义.

template<typename _type>

_type& ystdex::optional< _type >::operator* | ( |  | ) |

inline

在文件 optional.h 第 374 行定义.

template<typename _type>

const _type& ystdex::optional< _type >::operator* | ( |  | ) | const

inline

在文件 optional.h 第 379 行定义.

template<typename _type>

_type&& ystdex::optional< _type >::operator* | ( |  | ) |

inline

自从
  build 675

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

template<typename _type>

_type&& ystdex::optional< _type >::operator* | ( |  | ) | const

inline

自从
  build 675

在文件 optional.h 第 391 行定义.

template<typename _type>

_type* ystdex::optional< _type >::operator-> | ( |  | ) |

inline

在文件 optional.h 第 363 行定义.

template<typename _type>

const _type* ystdex::optional< _type >::operator-> | ( |  | ) | const

inline

在文件 optional.h 第 368 行定义.

参考 ystdex::constfn_addressof().

函数调用图:
template<typename _type>

optional& ystdex::optional< _type >::operator= | ( | nullopt_t |  | ) |

inline

在文件 optional.h 第 285 行定义.

参考 ystdex::reset().

函数调用图:
template<typename _type>

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

inline

在文件 optional.h 第 291 行定义.

参考 ystdex::optional< _type >::get_base().

函数调用图:
template<typename _type>

optional& ystdex::optional< _type >::operator= | ( | optional< _type > && | o | ) |

inline

自从
  build 630

在文件 optional.h 第 298 行定义.

template<typename _type>
template<typename _tOther >

enable_if_t<is_same<decay_t<_tOther>, _type>::value, optional&> ystdex::optional< _type >::operator= | ( | _tOther && | v | ) |

inline

在文件 optional.h 第 305 行定义.

参考 ystdex::construct(), v , 以及 yforward.

函数调用图:
template<typename _type>

void ystdex::optional< _type >::swap | ( | optional< _type > & | o | ) |

inline

在文件 optional.h 第 343 行定义.

参考 ystdex::construct(), ystdex::destroy() , 以及 ystdex::swap().

函数调用图:
template<typename _type>

_type& ystdex::optional< _type >::value | ( |  | ) |

inline

在文件 optional.h 第 406 行定义.

template<typename _type>

const _type& ystdex::optional< _type >::value | ( |  | ) | const

inline

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

template<typename _type>

_type&& ystdex::optional< _type >::value | ( |  | ) |

inline

自从
  build 675

在文件 optional.h 第 419 行定义.

template<typename _type>

_type&& ystdex::optional< _type >::value | ( |  | ) | const

inline

自从
  build 675

在文件 optional.h 第 426 行定义.

template<typename _type>
template<typename _tOther >

_type ystdex::optional< _type >::value_or | ( | _tOther && | other | ) | const

inline

在文件 optional.h 第 434 行定义.

参考 CHRLib::CharSet::other , 以及 yforward.

template<typename _type>
template<typename _tOther >

_type ystdex::optional< _type >::value_or | ( | _tOther && | other | ) |

inline

在文件 optional.h 第 442 行定义.

参考 CHRLib::CharSet::other , 以及 yforward.

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

- optional.h