MtFmt 1.0.0
MtFmt is a format library on embed. system and wrote by pure C.
载入中...
搜索中...
未找到
Public 类型 | Public 成员函数
mtfmt::result< T, E > 模板类 参考

结果类 更多...

#include <mm_result.hpp>

类 mtfmt::result< T, E > 继承关系图:

Public 类型

using base_t = details::result_base_t< T, E >
 
using value_type = typename base_t::value_type
 
using error_type = typename base_t::error_type
 
using reference_value_type = typename base_t::reference_value_type
 
using reference_error_type = typename base_t::reference_error_type
 
using const_reference_value_type = typename base_t::const_reference_value_type
 
using const_reference_error_type = typename base_t::const_reference_error_type
 

Public 成员函数

bool is_succ () const noexcept
 是否为succ?
 
bool is_err () const noexcept
 是否为err?
 
const_reference_value_type unsafe_get_succ_value () const noexcept
 取得succ的值
 
const_reference_error_type unsafe_get_err_value () const noexcept
 取得err的值
 
reference_value_type unsafe_get_succ_value_mut () noexcept
 取得succ的值(可变引用)
 
reference_error_type unsafe_get_err_value_mut () noexcept
 取得err的值(可变引用)
 
result< E, Tconjugate () const noexcept
 交换succ和err的情况以及值
 
template<typename T1 = T>
details::enable_if_t< details::is_result< T1 >::value, result< typename T1::value_type, E > > flatten () const noexcept
 扁平化
 
template<typename T1 = T>
details::enable_if_t<!details::is_result< T1 >::value, result< T1, E > > flatten () const noexcept
 扁平化 (T不是result<T, E>的情况)
 
template<typename F , typename R = details::function_return_type_t<F>>
details::enable_if_t< details::holds_prototype< F, R, T >::value, result< R, E > > map (F map_to) const
 在result是succ的时候执行map, 转换result
 
template<typename F , typename R = details::function_return_type_t<F>>
details::enable_if_t< details::holds_prototype< F, R, E >::value, result< T, R > > map_err (F map_to) const
 在result是err的时候执行map, 转换result
 
template<typename F , typename R1 = details::function_return_type_t<F>, typename R = details::enable_if_t< details::is_result<R1>::value, typename R1::value_type>>
details::enable_if_t< details::holds_prototype< F, result< R, E >, T >::value, result< R, E > > and_then (F then_do) const
 在self是succ的时候执行then do, 否则返回err
 
template<typename F , typename R1 = details::function_return_type_t<F>, typename R = details::enable_if_t< details::is_result<R1>::value, typename R1::error_type>>
details::enable_if_t< details::holds_prototype< F, result< T, R >, E >::value, result< T, R > > or_else (F else_do) const
 在self是err的时候执行else_do, 否则返回succ
 
const_reference_value_type or_value (const_reference_value_type or_val) const noexcept
 如果为T则返回T, 不然返回or_val
 
template<typename F , typename R1 = details::function_return_type_t<F>, typename R = details:: enable_if_t<std::is_base_of<std::exception, R1>::value, R1>>
details::enable_if_t< details::holds_prototype< F, R, E >::value, const_reference_value_typeor_exception (F cont) const
 如果为T则返回T, 不然抛出异常
 

详细描述

template<typename T, typename E>
class mtfmt::result< T, E >

结果类

模板参数
Tsucc时的结果
E失败时的结果

成员类型定义说明

◆ base_t

◆ const_reference_error_type

template<typename T , typename E >
using mtfmt::result< T, E >::const_reference_error_type = typename base_t::const_reference_error_type

◆ const_reference_value_type

template<typename T , typename E >
using mtfmt::result< T, E >::const_reference_value_type = typename base_t::const_reference_value_type

◆ error_type

template<typename T , typename E >
using mtfmt::result< T, E >::error_type = typename base_t::error_type

◆ reference_error_type

template<typename T , typename E >
using mtfmt::result< T, E >::reference_error_type = typename base_t::reference_error_type

◆ reference_value_type

template<typename T , typename E >
using mtfmt::result< T, E >::reference_value_type = typename base_t::reference_value_type

◆ value_type

template<typename T , typename E >
using mtfmt::result< T, E >::value_type = typename base_t::value_type

成员函数说明

◆ and_then()

template<typename T , typename E >
template<typename F , typename R1 = details::function_return_type_t<F>, typename R = details::enable_if_t< details::is_result<R1>::value, typename R1::value_type>>
details::enable_if_t< details::holds_prototype< F, result< R, E >, T >::value, result< R, E > > mtfmt::result< T, E >::and_then ( F  then_do) const
inline

在self是succ的时候执行then do, 否则返回err

参数
then_do接下来要做的事情, 拥有类型 T -> result<R, E>

◆ conjugate()

template<typename T , typename E >
result< E, T > mtfmt::result< T, E >::conjugate ( ) const
inlinenoexcept

交换succ和err的情况以及值

◆ flatten() [1/2]

template<typename T , typename E >
template<typename T1 = T>
details::enable_if_t< details::is_result< T1 >::value, result< typename T1::value_type, E > > mtfmt::result< T, E >::flatten ( ) const
inlinenoexcept

扁平化

注解
将result<result<T, E>, E>变成result<T, E>, 当内部为err的时候, 输出是err, 内部是succ的时候, 返回succ

◆ flatten() [2/2]

template<typename T , typename E >
template<typename T1 = T>
details::enable_if_t<!details::is_result< T1 >::value, result< T1, E > > mtfmt::result< T, E >::flatten ( ) const
inlinenoexcept

扁平化 (T不是result<T, E>的情况)

◆ is_err()

template<typename T , typename E >
bool mtfmt::result< T, E >::is_err ( ) const
inlinenoexcept

是否为err?

◆ is_succ()

template<typename T , typename E >
bool mtfmt::result< T, E >::is_succ ( ) const
inlinenoexcept

是否为succ?

◆ map()

template<typename T , typename E >
template<typename F , typename R = details::function_return_type_t<F>>
details::enable_if_t< details::holds_prototype< F, R, T >::value, result< R, E > > mtfmt::result< T, E >::map ( F  map_to) const
inline

在result是succ的时候执行map, 转换result

参数
[in]map_to映射函数, 拥有类型 T -> R

◆ map_err()

template<typename T , typename E >
template<typename F , typename R = details::function_return_type_t<F>>
details::enable_if_t< details::holds_prototype< F, R, E >::value, result< T, R > > mtfmt::result< T, E >::map_err ( F  map_to) const
inline

在result是err的时候执行map, 转换result

参数
[in]map_to映射函数, 拥有类型 E -> R

◆ or_else()

template<typename T , typename E >
template<typename F , typename R1 = details::function_return_type_t<F>, typename R = details::enable_if_t< details::is_result<R1>::value, typename R1::error_type>>
details::enable_if_t< details::holds_prototype< F, result< T, R >, E >::value, result< T, R > > mtfmt::result< T, E >::or_else ( F  else_do) const
inline

在self是err的时候执行else_do, 否则返回succ

参数
[in]else_do接下来要做的事情, 拥有类型 E -> result<R, E>

◆ or_exception()

template<typename T , typename E >
template<typename F , typename R1 = details::function_return_type_t<F>, typename R = details:: enable_if_t<std::is_base_of<std::exception, R1>::value, R1>>
details::enable_if_t< details::holds_prototype< F, R, E >::value, const_reference_value_type > mtfmt::result< T, E >::or_exception ( F  cont) const
inline

如果为T则返回T, 不然抛出异常

注意
抛出的异常必须继承自 std::exception, 如果未启用异常, 会触发assert(false)

◆ or_value()

template<typename T , typename E >
const_reference_value_type mtfmt::result< T, E >::or_value ( const_reference_value_type  or_val) const
inlinenoexcept

如果为T则返回T, 不然返回or_val

◆ unsafe_get_err_value()

template<typename T , typename E >
const_reference_error_type mtfmt::result< T, E >::unsafe_get_err_value ( ) const
inlinenoexcept

取得err的值

注意
只有在 is_err() 返回 true 时才是有意义的

◆ unsafe_get_err_value_mut()

template<typename T , typename E >
reference_error_type mtfmt::result< T, E >::unsafe_get_err_value_mut ( )
inlinenoexcept

取得err的值(可变引用)

注意
只有在 is_err() 返回 true 时才是有意义的

◆ unsafe_get_succ_value()

template<typename T , typename E >
const_reference_value_type mtfmt::result< T, E >::unsafe_get_succ_value ( ) const
inlinenoexcept

取得succ的值

注意
只有在 is_succ() 返回 true 时才是有意义的

◆ unsafe_get_succ_value_mut()

template<typename T , typename E >
reference_value_type mtfmt::result< T, E >::unsafe_get_succ_value_mut ( )
inlinenoexcept

取得succ的值(可变引用)

注意
只有在 is_succ() 返回 true 时才是有意义的

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