你用现实世界的方式使用tribool吗?
答案 0 :(得分:18)
虽然我没有使用C ++,因此我已经在网络应用程序中广泛使用了三态变量,我需要将状态存储为true / false / pending。
答案 1 :(得分:15)
任何值类型的额外状态都非常有价值。它避免使用“幻数”或额外标志来确定变量的值是“可能”还是“未知”。
而不是true
或false
,tribool
的状态为true
,false
或indeterminate
。
假设您有一个包含customers
及其dateOfBirth
列表的数据库。所以你写了一个函数:
tribool IsCustomerAdult(customerName);
该函数返回:
`true` if the customer is 18 or older; `false` if the customer is less than 18; `indeterminate` if the customer is not in the database (or the dateOfBirth value is not present).
非常有用。
答案 2 :(得分:9)
我认为额外的好处不仅仅是第3个值,而且还可以轻松使用3值逻辑!
例如:
(true && indeterminate) == indeterminate
(true || indeterminate) == true
SQL实现了这样的逻辑。
答案 3 :(得分:5)
我已经看过很多例子,两个布尔值用于表示三种可能的状态,明确地或其他地方,第四种状态被默默地认为是不可能的。至少在两种情况下,我已经改变了这样的结构,因为我们开始使用boost。
答案 4 :(得分:3)
我是Boost图书馆的忠实粉丝,并开始在我离开的公司使用它。在我们的整个项目中广泛接触和使用升级库之后,我偶然发现了tribool并考虑使用一些需要改进的“模糊逻辑”算法。
在我有机会进入之前我离开了,但是除了“模糊逻辑”示例之外,系统中的其他模块都有这种状态的组件,现在考虑到,我可能会最终使用tribool如果我还在公司工作,那么代码量不错。
-bn
答案 5 :(得分:1)
我认为它对语言成型非常有用,例如OCR应用程序和语音合成,因为你知道人类语言含糊不清并且它们有很多中级状态
寻找使用tribool来改进当前技术的前言