MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
可选值

可选值类型及相关操作 更多...

class  optional< T >
 可选值类 更多...
class  optional< T & >
 引用可选值类模板 更多...

函数

template<typename T, enable_if_t< is_constructible_v< decay_t< T >, T >, int > = 0>
constexpr optional< decay_t< T > > make_optional (T &&value) noexcept(is_nothrow_constructible_v< optional< decay_t< T > >, T >)
 从值创建可选值
template<typename T, typename... Args, enable_if_t< is_constructible_v< T, Args... >, int > = 0>
constexpr optional< T > make_optional (Args &&... args) noexcept(is_nothrow_constructible_v< T, Args... >)
 原位构造可选值
template<typename T, typename U, typename... Args>
constexpr enable_if_t< is_constructible_v< T, std::initializer_list< U > &, Args... >, optional< T > > make_optional (std::initializer_list< U > ilist, Args &&... args) noexcept(is_nothrow_constructible_v< T, std::initializer_list< U > &, Args... >)
 使用初始化列表原位构造可选值
template<typename T>
constexpr optional< T & > make_optional (T &value) noexcept
 创建引用可选值
template<typename T>
constexpr optional< remove_reference_t< T > & > make_optional (T &&)=delete
template<typename T>
constexpr const T & get (const optional< T > &opt)
 获取可选值中的值
template<typename T>
constexpr T & get (optional< T > &opt)
 获取可选值中的值
template<typename T>
constexpr const T && get (const optional< T > &&opt)
 获取可选值中的值
template<typename T>
constexpr T && get (optional< T > &&opt)
 获取可选值中的值

详细描述

可选值类型及相关操作

函数说明

◆ get() [1/4]

template<typename T>
const T && get ( const optional< T > && opt)
constexpr

获取可选值中的值

模板参数
T可选值持有的值类型
参数
opt可选值
返回
指定位置元素的常量右值引用
异常
optional_exception如果值未存储

在文件 optional.hpp1389 行定义.

引用了 optional< T >::value().

◆ get() [2/4]

template<typename T>
const T & get ( const optional< T > & opt)
constexpr

获取可选值中的值

模板参数
T可选值持有的值类型
参数
opt可选值
返回
指定位置元素的常量左值引用
异常
optional_exception如果值未存储

在文件 optional.hpp1365 行定义.

引用了 optional< T >::value().

◆ get() [3/4]

template<typename T>
T && get ( optional< T > && opt)
constexpr

获取可选值中的值

模板参数
T可选值持有的值类型
参数
opt可选值
返回
指定位置元素的右值引用
异常
optional_exception如果值未存储

在文件 optional.hpp1401 行定义.

引用了 optional< T >::value().

◆ get() [4/4]

template<typename T>
T & get ( optional< T > & opt)
constexpr

获取可选值中的值

模板参数
T可选值持有的值类型
参数
opt可选值
返回
指定位置元素的左值引用
异常
optional_exception如果值未存储

在文件 optional.hpp1377 行定义.

引用了 optional< T >::value().

◆ make_optional() [1/5]

template<typename T, typename... Args, enable_if_t< is_constructible_v< T, Args... >, int > = 0>
optional< T > make_optional ( Args &&... args)
constexprnoexcept

原位构造可选值

模板参数
T值类型
Args参数类型
参数
args构造参数
返回
构造的可选值

在文件 optional.hpp1318 行定义.

引用了 _MSTL , 以及 forward().

◆ make_optional() [2/5]

template<typename T, typename U, typename... Args>
enable_if_t< is_constructible_v< T, std::initializer_list< U > &, Args... >, optional< T > > make_optional ( std::initializer_list< U > ilist,
Args &&... args )
constexprnoexcept

使用初始化列表原位构造可选值

模板参数
T值类型
U初始化列表元素类型
Args参数类型
参数
ilist初始化列表
args构造参数
返回
构造的可选值

在文件 optional.hpp1334 行定义.

引用了 _MSTL , 以及 forward().

◆ make_optional() [3/5]

template<typename T>
optional< remove_reference_t< T > & > make_optional ( T && )
constexprdelete
注解
禁用从右值创建引用可选值,防止悬垂引用

◆ make_optional() [4/5]

template<typename T, enable_if_t< is_constructible_v< decay_t< T >, T >, int > = 0>
optional< decay_t< T > > make_optional ( T && value)
constexprnoexcept

从值创建可选值

模板参数
T值类型
参数
value要包装的值
返回
包装值的可选值

在文件 optional.hpp1305 行定义.

引用了 _MSTL, forward() , 以及 optional< T >::value().

◆ make_optional() [5/5]

template<typename T>
optional< T & > make_optional ( T & value)
constexprnoexcept

创建引用可选值

模板参数
T引用类型
参数
value引用值
返回
包装引用的可选值

在文件 optional.hpp1346 行定义.

引用了 optional< T >::value().