#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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBFVkFMVUFURV9BTkRfUFJJTlQoRVhQUikgXAoJY291dCA8PCAiXCIiICNFWFBSICJcIiBpcyBldmFsdWF0ZWQgdG8gIjsgcHJpbnQoRVhQUik7IGNvdXQgPDwgZW5kbDsKCnZvaWQgcHJpbnQoaW50IHYpeyBjb3V0IDw8ICIoaW50KSIgPDwgdjsgfQp2b2lkIHByaW50KGJvb2wgdil7IGNvdXQgPDwgIihib29sKSIgPDwgdjsgfQoKaW50IG1haW4oKSB7Cgljb3V0IDw8IHNob3diYXNlIDw8IGhleCA8PCBib29sYWxwaGE7CgkKCWJvb2wgYjsKCUVWQUxVQVRFX0FORF9QUklOVChiID0gdHJ1ZSk7CglFVkFMVUFURV9BTkRfUFJJTlQofmIpOwoJRVZBTFVBVEVfQU5EX1BSSU5UKGIgPSB+Yik7CglyZXR1cm4gMDsKfQ==