#include <iostream>
using namespace std;

#define EVALUATE_AND_PRINT(EXPR) \
	cout << "\"" #EXPR "\" is evaluated to "; print(EXPR); cout << endl;

void print(int v){ cout << "(int)" << v; }
void print(bool v){ cout << "(bool)" << v; }

int main() {
	cout << showbase << hex << boolalpha;
	
	bool b;
	EVALUATE_AND_PRINT(b = true);
	EVALUATE_AND_PRINT(~b);
	EVALUATE_AND_PRINT(b = ~b);
	return 0;
}