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

结果类型的基类 更多...

#include <mm_result.hpp>

Public 类型

using value_type = T
 
using error_type = E
 
using reference_value_type = T &
 
using reference_error_type = E &
 
using const_reference_value_type = const T &
 
using const_reference_error_type = const E &
 

Public 成员函数

 result_non_trivial_base (const_reference_value_type succ_val)
 从succ value构造
 
 result_non_trivial_base (const_reference_error_type err_val)
 从err value构造
 
 result_non_trivial_base (const result_non_trivial_base &rhs)
 
result_non_trivial_baseoperator= (const result_non_trivial_base &rhs)
 
 ~result_non_trivial_base ()
 

Protected 类型

enum class  TypeTag { SuccTag = 0 , ErrorTag = 1 }
 类型标签 更多...
 

Protected 成员函数

enable_if_t< std::is_copy_constructible< T >::value, const_reference_value_typeunsafe_get_succ_value () const noexcept
 
enable_if_t< std::is_copy_constructible< E >::value, const_reference_error_typeunsafe_get_err_value () const noexcept
 
enable_if_t< std::is_copy_constructible< T >::value, reference_value_typeunsafe_get_succ_value_mut () noexcept
 
enable_if_t< std::is_copy_constructible< E >::value, reference_error_typeunsafe_get_err_value_mut () noexcept
 

Protected 属性

TypeTag type_tag
 类型标签
 

Private 类型

using dtor_t = typename std::add_pointer< void(void *)>::type
 
using storager_t = typename result_storager_type< T, E >::storager_t
 

Private 成员函数

enable_if_t< std::is_copy_constructible< T >::value, voidunsafe_set_succ_value (const T &value) noexcept
 
enable_if_t< std::is_copy_constructible< E >::value, voidunsafe_set_err_value (const E &value) noexcept
 

静态 Private 成员函数

static void dtor_succ_type (void *ptr) noexcept
 析构函数 (T type)
 
static void dtor_err_type (void *ptr) noexcept
 析构函数 (E type)
 

Private 属性

storager_t storager
 数据存放在这里
 
dtor_t dtor
 这里存着析构函数
 

详细描述

template<typename T, typename E>
class mtfmt::details::result_non_trivial_base< T, E >

结果类型的基类

成员类型定义说明

◆ const_reference_error_type

template<typename T , typename E >
using mtfmt::details::result_non_trivial_base< T, E >::const_reference_error_type = const E&

◆ const_reference_value_type

template<typename T , typename E >
using mtfmt::details::result_non_trivial_base< T, E >::const_reference_value_type = const T&

◆ dtor_t

template<typename T , typename E >
using mtfmt::details::result_non_trivial_base< T, E >::dtor_t = typename std::add_pointer<void(void*)>::type
private

◆ error_type

◆ reference_error_type

template<typename T , typename E >
using mtfmt::details::result_non_trivial_base< T, E >::reference_error_type = E&

◆ reference_value_type

template<typename T , typename E >
using mtfmt::details::result_non_trivial_base< T, E >::reference_value_type = T&

◆ storager_t

template<typename T , typename E >
using mtfmt::details::result_non_trivial_base< T, E >::storager_t = typename result_storager_type<T, E>::storager_t
private

◆ value_type

成员枚举类型说明

◆ TypeTag

类型标签

枚举值
SuccTag 
ErrorTag 

构造及析构函数说明

◆ result_non_trivial_base() [1/3]

template<typename T , typename E >
mtfmt::details::result_non_trivial_base< T, E >::result_non_trivial_base ( const_reference_value_type  succ_val)
inline

从succ value构造

◆ result_non_trivial_base() [2/3]

template<typename T , typename E >
mtfmt::details::result_non_trivial_base< T, E >::result_non_trivial_base ( const_reference_error_type  err_val)
inline

从err value构造

◆ result_non_trivial_base() [3/3]

template<typename T , typename E >
mtfmt::details::result_non_trivial_base< T, E >::result_non_trivial_base ( const result_non_trivial_base< T, E > &  rhs)
inline

◆ ~result_non_trivial_base()

成员函数说明

◆ dtor_err_type()

template<typename T , typename E >
static void mtfmt::details::result_non_trivial_base< T, E >::dtor_err_type ( void ptr)
inlinestaticprivatenoexcept

析构函数 (E type)

◆ dtor_succ_type()

template<typename T , typename E >
static void mtfmt::details::result_non_trivial_base< T, E >::dtor_succ_type ( void ptr)
inlinestaticprivatenoexcept

析构函数 (T type)

◆ operator=()

◆ unsafe_get_err_value()

template<typename T , typename E >
enable_if_t< std::is_copy_constructible< E >::value, const_reference_error_type > mtfmt::details::result_non_trivial_base< T, E >::unsafe_get_err_value ( ) const
inlineprotectednoexcept

◆ unsafe_get_err_value_mut()

template<typename T , typename E >
enable_if_t< std::is_copy_constructible< E >::value, reference_error_type > mtfmt::details::result_non_trivial_base< T, E >::unsafe_get_err_value_mut ( )
inlineprotectednoexcept

◆ unsafe_get_succ_value()

template<typename T , typename E >
enable_if_t< std::is_copy_constructible< T >::value, const_reference_value_type > mtfmt::details::result_non_trivial_base< T, E >::unsafe_get_succ_value ( ) const
inlineprotectednoexcept

◆ unsafe_get_succ_value_mut()

template<typename T , typename E >
enable_if_t< std::is_copy_constructible< T >::value, reference_value_type > mtfmt::details::result_non_trivial_base< T, E >::unsafe_get_succ_value_mut ( )
inlineprotectednoexcept

◆ unsafe_set_err_value()

template<typename T , typename E >
enable_if_t< std::is_copy_constructible< E >::value, void > mtfmt::details::result_non_trivial_base< T, E >::unsafe_set_err_value ( const E value)
inlineprivatenoexcept

◆ unsafe_set_succ_value()

template<typename T , typename E >
enable_if_t< std::is_copy_constructible< T >::value, void > mtfmt::details::result_non_trivial_base< T, E >::unsafe_set_succ_value ( const T value)
inlineprivatenoexcept

结构体成员变量说明

◆ dtor

这里存着析构函数

◆ storager

数据存放在这里

注解
这里用一个足够大的buffer实现union

◆ type_tag

template<typename T , typename E >
TypeTag mtfmt::details::result_non_trivial_base< T, E >::type_tag
protected

类型标签


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