// POST: Tribool value is written to std::cout
void print (Tribool x)
{
if (x.value == 0) std::cout << "false ";
else if (x.value == 1) std::cout << "unknown ";
else std::cout << "true ";
}
// POST: AND and OR truthtables of Tribool are
// written to std::cout
void print_truthtables() {
// print 3 x 3 truth table for AND
for (int x_val = 0; x_val < 3; ++x_val) {
Tribool x = tribool (x_val);
for (int y_val = 0; y_val < 3; ++y_val) {
Tribool y = tribool (y_val);
print (x && y);
}
std::cout << "\n";
}
std::cout << "\n";
// print 3 x 3 truth table for OR
for (int x_val = 0; x_val < 3; ++x_val) {
Tribool x = tribool (x_val);
for (int y_val = 0; y_val < 3; ++y_val) {
Tribool y = tribool (y_val);
print (x || y);
}
std::cout << "\n";
}
std::cout << "\n";
}