ELC in dev
ELC-lang
载入中...
搜索中...
未找到
elc::defs::base::logical_bool结构体 参考

Public 成员函数

constexpr logical_bool (special_init_t, bool is_true, bool is_false, bool is_unknown=0) noexcept
 
constexpr logical_bool (bool a) noexcept
 
constexpr logical_bool (const logical_bool &) noexcept=default
 
constexpr logical_booloperator= (const logical_bool &) &noexcept=default
 
constexpr operator bool () const noexcept
 
constexpr logical_bool operator! () const noexcept
 

友元

logical_bool operator&& (logical_bool a, logical_bool b) noexcept
 
logical_bool operator|| (logical_bool a, logical_bool b) noexcept
 
logical_bool operator== (logical_bool a, logical_bool b) noexcept
 

详细描述

混沌布尔值。 允许输出介于真假之间的内容的布尔值。 混沌布尔值会有五个可能的值,分别为true,false,neither,either。unknown视为不合法。 用在if与while中时,true,either被判定为真,其与均为假。 用法: logical_bool(bool) 输出logical_bool,将布尔值转换为混沌布尔值。 bool(logical_bool) 输出bool,将混沌布尔值转化为布尔值。 允许与或非运算:输出结果仍然为混沌布尔值,参与运算的值如果有unknown则均输出unknown. 允许判定相等,输出结果为混沌布尔值,参与运算的值如果有unknown则均输出unknown,否则仅有true和false两个合法值。

在文件 all_defs.cpp12414 行定义.

构造及析构函数说明

◆ logical_bool() [1/3]

constexpr elc::defs::base::logical_bool::logical_bool ( special_init_t  ,
bool  is_true,
bool  is_false,
bool  is_unknown = 0 
)
inlineconstexprnoexcept

在文件 all_defs.cpp12420 行定义.

12420:_is_true(is_true),_is_false(is_false),_is_unknown(is_unknown){}
constexpr T down_cast(U a) noexcept
向下转型至

◆ logical_bool() [2/3]

constexpr elc::defs::base::logical_bool::logical_bool ( bool  a)
inlineconstexprnoexcept

在文件 all_defs.cpp12421 行定义.

12421:_is_true(a),_is_false(!a),_is_unknown(0){}

◆ logical_bool() [3/3]

constexpr elc::defs::base::logical_bool::logical_bool ( const logical_bool )
constexprdefaultnoexcept

成员函数说明

◆ operator bool()

constexpr elc::defs::base::logical_bool::operator bool ( ) const
inlineexplicitconstexprnoexcept

在文件 all_defs.cpp12424 行定义.

12424{return _is_true && !_is_unknown;}

◆ operator!()

constexpr logical_bool elc::defs::base::logical_bool::operator! ( ) const
inlineconstexprnoexcept

在文件 all_defs.cpp12425 行定义.

12425 {
12426 logical_bool aret=*this;
12427 swap(aret._is_true,aret._is_false);
12428 return aret;
12429 }
constexpr void swap(T1 &a, T2 &b)
constexpr logical_bool(special_init_t, bool is_true, bool is_false, bool is_unknown=0) noexcept
函数调用图:

◆ operator=()

constexpr logical_bool & elc::defs::base::logical_bool::operator= ( const logical_bool ) &
constexprdefaultnoexcept

友元及相关函数文档

◆ operator&&

logical_bool operator&& ( logical_bool  a,
logical_bool  b 
)
friend

在文件 all_defs.cpp12430 行定义.

12430 {
12431 return logical_bool{special_init,a._is_true && b._is_true,a._is_false || b._is_false,a._is_unknown || b._is_unknown};
12432 }
constexpr struct elc::defs::base::special_init_t special_init

◆ operator==

logical_bool operator== ( logical_bool  a,
logical_bool  b 
)
friend

在文件 all_defs.cpp12436 行定义.

12436 {
12437 logical_bool aret(a._is_true == b._is_true && a._is_false == b._is_false);
12438 aret._is_unknown = a._is_unknown || b._is_unknown;
12439 return aret;
12440 }

◆ operator||

logical_bool operator|| ( logical_bool  a,
logical_bool  b 
)
friend

在文件 all_defs.cpp12433 行定义.

12433 {
12434 return logical_bool{special_init,a._is_true || b._is_true,a._is_false && b._is_false,a._is_unknown || b._is_unknown};
12435 }

该结构体的文档由以下文件生成: