#include <iostream>
using namespace std;
class my_bool
{
private:
bool value;
public:
my_bool(bool value) : value(value) {}
operator bool() { return value; }
bool operator == (bool val)
{
return this->value == val;
}
};
int main()
{
my_bool a = true;
bool b = true;
bool c = false;
if (a == b)
cout << "a==b: true" << endl;
else
cout << "a==b: false " << endl;
if (a == c)
cout << "a==c: true" << endl;
else
cout << "a==c: false " << endl;
if (a)
cout << "a is: true" << endl;
else
cout << "a is: false " << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgbXlfYm9vbAp7CnByaXZhdGU6CiAgICBib29sIHZhbHVlOwpwdWJsaWM6CiAgICBteV9ib29sKGJvb2wgdmFsdWUpIDogdmFsdWUodmFsdWUpIHt9CiAgICBvcGVyYXRvciBib29sKCkgeyByZXR1cm4gdmFsdWU7IH0KIAogICAgYm9vbCBvcGVyYXRvciA9PSAoYm9vbCB2YWwpCiAgICB7CiAgICAJcmV0dXJuIHRoaXMtPnZhbHVlID09IHZhbDsKICAgIH0KfTsKCmludCBtYWluKCkKewogICAgbXlfYm9vbCBhID0gdHJ1ZTsKICAgIGJvb2wgYiA9IHRydWU7CiAgICBib29sIGMgPSBmYWxzZTsKIAogICAgaWYgKGEgPT0gYikKICAgICAgICBjb3V0IDw8ICJhPT1iOiB0cnVlIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgImE9PWI6IGZhbHNlICIgPDwgZW5kbDsKIAogICAgaWYgKGEgPT0gYykKICAgICAgICBjb3V0IDw8ICJhPT1jOiB0cnVlIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgImE9PWM6IGZhbHNlICIgPDwgZW5kbDsKIAogICAgaWYgKGEpCiAgICAgICAgY291dCA8PCAiYSBpczogdHJ1ZSIgPDwgZW5kbDsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJhIGlzOiBmYWxzZSAiIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==