58TriBool::TriBool(State iState):
67TriBool::TriBool(
bool iBool):
68 state_(iBool ? sTrue : sFalse)
76TriBool::State TriBool::state()
const
85TriBool::State& TriBool::state()
98TriBool TriBool::operator!()
const
100 if (state_ == sUnknown)
104 return state_ == sTrue ? sFalse : sTrue;
132TriBool::operator bool()
const
134 return state_ == sTrue;
141bool TriBool::isTrue()
const
143 return state_ == sTrue;
150bool TriBool::isFalse()
const
152 return state_ == sFalse;
159bool TriBool::isUnknown()
const
161 return state_ == sUnknown;
188TriBool operator==(TriBool iA, TriBool iB)
190 if (iA.isUnknown() || iB.isUnknown())
192 return TriBool::sUnknown;
194 return iA.state() == iB.state();
208TriBool operator!=(TriBool iA, TriBool iB)
224TriBool operator&&(TriBool iA, TriBool iB)
226 if (iA.isFalse() || iB.isFalse())
228 return TriBool::sFalse;
230 if (iA.isTrue() && iB.isTrue())
232 return TriBool::sTrue;
234 return TriBool::sUnknown;
248TriBool operator||(TriBool iA, TriBool iB)
250 if (iA.isTrue() || iB.isTrue())
252 return TriBool::sTrue;
254 if (iA.isFalse() && iB.isFalse())
256 return TriBool::sFalse;
258 return TriBool::sUnknown;
265std::ostream& operator<<(std::ostream& ioS, TriBool iB)
273 case TriBool::sFalse:
278 LASS_ASSERT(iB.state() == TriBool::sUnknown);
279 ioS << (ioS.flags() & std::ios::boolalpha ?
"unknown" :
"?");
numeric types and traits.
Library for Assembled Shared Sources.