#include <iostream>
#include <boost/logic/tribool.hpp>
using namespace std;
using namespace boost::logic;
void f( tribool b )
{
if( b ) cout << "True" << endl;
else if( !b ) cout << "False" << endl;
else cout << "Indeterminate" << endl;
}
int main()
{
tribool x = indeterminate;
f(true);
f(false);
f(x);
f(true && x);
f(true || x);
}
True False Indeterminate Indeterminate True
SQLなどで使われている、 3値論理を表現する型です。true, false, indeterminate(不定) の3種類の値をとります。