4.7.1 类摘要
tribool的类摘要如下:
- class tribool
- {
- public:
- tribool(bool value);
- ... //其他构造函数
- enum value_t { false_value, true_value, indeterminate_value } value;
- };
- bool indeterminate(tribool x);
- tribool operator!(tribool x);
- ... //其他逻辑运算符和比较运算符重载
tribool类很简单,它内部实现了三态bool值的表示,除了构造函数没有什么其他成员函数。可以在创建tribool对象的同时传入三态bool值对它进行初始化,如果使用无参的缺省构造函数,那么tribool默认值是false。
对tribool的操作都是通过逻辑运算符和比较运算符的重载来完成的,支持的逻辑运算包括||、&&和!,比较运算支持==和!=,这些操作都可以任意混合bool和tribool一起运算。
不确定状态indeterminate是一个特殊的tribool值,它与bool值true、false的运算遵循三态布尔逻辑:
任何与indeterminate的比较操作结果都是indeterminate;
与indeterminate的逻辑或运算(||)只有与true运算结果为true,其他均为indeterminate;
与indeterminate的逻辑与运算(&&)只有与false运算结果为false,其他均为indeterminate;
indeterminate的逻辑非操作(!)结果仍为indeterminate。
自由函数indeterminate()可以判断一个tribool是否处于不确定状态。