DtkCore
DTK Core module
载入中...
搜索中...
未找到
Dtk::Core::DUnexpected< E > 模板类 参考

类模板Dtk::Core::DUnexpected代表一个Dtk::Core::DExpected中存储的不期待的值 更多...

#include <dexpected.h>

Public 成员函数

constexpr DUnexpected (const DUnexpected &)=default
 Dtk::Core::DUnexpected的默认拷贝构造函数
 
constexpr DUnexpected (DUnexpected &&)=default
 Dtk::Core::DUnexpected的默认移动构造函数
 
template<typename Er = E, typename std::enable_if<!std::is_same< typename remove_cvref< Er >::type, DUnexpected >::value and !std::is_same< typename remove_cvref< Er >::type, emplace_tag >::value and std::is_constructible< E, Er >::value, bool >::type = true>
constexpr DUnexpected (Er &&_e) noexcept(std::is_nothrow_constructible< E, Er >::value)
 使用类型E直接初始化一个Dtk::Core::DUnexpected对象
 
template<typename... Args>
constexpr DUnexpected (emplace_tag, Args &&...args) noexcept(std::is_nothrow_constructible< E, Args... >::value)
 直接从参数构造出一个包含错误类型为E的对象的Dtk::Core::DUnexpected对象
 
template<typename U , typename... Args>
constexpr DUnexpected (emplace_tag, std::initializer_list< U > _li, Args &&...args) noexcept(std::is_nothrow_constructible< E, std::initializer_list< U > &, Args... >::value)
 从参数和初始化列表构造出一个包含错误类型为E的对象的Dtk::Core::DUnexpected对象
 
DUnexpectedoperator= (const DUnexpected &)=default
 Dtk::Core::DUnexpected的默认拷贝赋值运算符
 
DUnexpectedoperator= (DUnexpected &&)=default
 Dtk::Core::DUnexpected的默认移动赋值运算符
 
constexpr const E & error () const &noexcept
 获取Dtk::Core::DUnexpected持有的不期待值
 
E & error () &noexcept
 获取Dtk::Core::DUnexpected持有的不期待值
 
constexpr const E && error () const &&noexcept
 获取Dtk::Core::DUnexpected持有的不期待值
 
E && error () &&noexcept
 获取Dtk::Core::DUnexpected持有的不期待值
 
void swap (DUnexpected &_other)
 交换两个Dtk::Core::DUnexpected的值
 

友元

template<typename Er >
constexpr bool operator== (const DUnexpected &_x, const DUnexpected< Er > _y)
 重载相等运算符
 
void swap (DUnexpected &_x, DUnexpected &_y)
 交换两个Dtk::Core::DUnexpected的值
 

详细描述

template<typename E = DError>
class Dtk::Core::DUnexpected< E >

类模板Dtk::Core::DUnexpected代表一个Dtk::Core::DExpected中存储的不期待的值

模板参数
E不期待的值的类型,该类型不能是非对象类型,数组类型,Dtk::Core::DUnexpected的特化类型或有cv限定符的类型

构造及析构函数说明

◆ DUnexpected() [1/3]

template<typename E = DError>
template<typename Er = E, typename std::enable_if<!std::is_same< typename remove_cvref< Er >::type, DUnexpected >::value and !std::is_same< typename remove_cvref< Er >::type, emplace_tag >::value and std::is_constructible< E, Er >::value, bool >::type = true>
constexpr Dtk::Core::DUnexpected< E >::DUnexpected ( Er &&  _e)
inlineexplicitconstexprnoexcept

使用类型E直接初始化一个Dtk::Core::DUnexpected对象

模板参数
Er错误类型,默认为E
参数
[in]_e一个类型为Er的值

◆ DUnexpected() [2/3]

template<typename E = DError>
template<typename... Args>
constexpr Dtk::Core::DUnexpected< E >::DUnexpected ( emplace_tag  ,
Args &&...  args 
)
inlineexplicitconstexprnoexcept

直接从参数构造出一个包含错误类型为E的对象的Dtk::Core::DUnexpected对象

模板参数
Args可变参数模板类型,这里是构造类型为E的对象所需要的参数的类型
参数
[in]args构造类型为E的对象用到的参数
注意
为了区分是构造E还是Dtk::Core::DUnexpected,需要在第一个参数使用emplace_tag进行标识

◆ DUnexpected() [3/3]

template<typename E = DError>
template<typename U , typename... Args>
constexpr Dtk::Core::DUnexpected< E >::DUnexpected ( emplace_tag  ,
std::initializer_list< U >  _li,
Args &&...  args 
)
inlineexplicitconstexprnoexcept

从参数和初始化列表构造出一个包含错误类型为E的对象的Dtk::Core::DUnexpected对象

模板参数
U初始化列表的模板类型
Args可变参数模板类型,这里是构造类型为E的对象所需要的参数的类型
参数
_li模板类型为U的初始化列表
[in]args构造类型为E的对象用到的参数
注意
为了区分是构造E还是Dtk::Core::DUnexpected,需要在第一个参数使用emplace_tag进行标识

成员函数说明

◆ error() [1/4]

template<typename E = DError>
E && Dtk::Core::DUnexpected< E >::error ( ) &&
inlinenoexcept

获取Dtk::Core::DUnexpected持有的不期待值

注意
获取后原Dtk::Core::DUnexpected不可用
返回
不期待值的右值引用

◆ error() [2/4]

template<typename E = DError>
E & Dtk::Core::DUnexpected< E >::error ( ) &
inlinenoexcept

获取Dtk::Core::DUnexpected持有的不期待值

返回
不期待值的左值引用

◆ error() [3/4]

template<typename E = DError>
constexpr const E && Dtk::Core::DUnexpected< E >::error ( ) const &&
inlineconstexprnoexcept

获取Dtk::Core::DUnexpected持有的不期待值

注意
获取后原Dtk::Core::DUnexpected不可用
返回
不期待值的const右值引用

◆ error() [4/4]

template<typename E = DError>
constexpr const E & Dtk::Core::DUnexpected< E >::error ( ) const &
inlineconstexprnoexcept

获取Dtk::Core::DUnexpected持有的不期待值

返回
不期待值的const左值引用

◆ swap()

template<typename E = DError>
void Dtk::Core::DUnexpected< E >::swap ( DUnexpected< E > &  _other)
inline

交换两个Dtk::Core::DUnexpected的值

参数
[in]_other另一个模板参数为E的Dtk::Core::DUnexpected对象

友元及相关函数文档

◆ operator==

template<typename E = DError>
template<typename Er >
constexpr bool operator== ( const DUnexpected< E > &  _x,
const DUnexpected< Er >  _y 
)
friend

重载相等运算符

模板参数
Er另一个Dtk::Core::DUnexpected的模板类型
参数
[in]_x模板参数为E的Dtk::Core::DUnexpected对象
[in]_y模板参数为Er的Dtk::Core::DUnexpected对象

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