#include <iostream>
using namespace std;
class my_bool {
private:
bool value;
public:
my_bool(bool value) : value(value) {}
operator bool() { return value; }
friend my_bool operator==(const my_bool & instance_1, my_bool & instance_2);
};
my_bool operator==(const my_bool & instance_1, my_bool & instance_2)
{
return instance_1 == instance_2;
}
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgbXlfYm9vbCB7CnByaXZhdGU6CiAgICBib29sIHZhbHVlOwpwdWJsaWM6CiAgICBteV9ib29sKGJvb2wgdmFsdWUpIDogdmFsdWUodmFsdWUpIHt9CiAgICBvcGVyYXRvciBib29sKCkgeyByZXR1cm4gdmFsdWU7IH0KCiAgICBmcmllbmQgbXlfYm9vbCBvcGVyYXRvcj09KGNvbnN0IG15X2Jvb2wgJiBpbnN0YW5jZV8xLCBteV9ib29sICYgaW5zdGFuY2VfMik7Cn07CgpteV9ib29sIG9wZXJhdG9yPT0oY29uc3QgbXlfYm9vbCAmIGluc3RhbmNlXzEsIG15X2Jvb2wgJiBpbnN0YW5jZV8yKQp7CiAgICByZXR1cm4gaW5zdGFuY2VfMSA9PSBpbnN0YW5jZV8yOwp9CgppbnQgbWFpbigpCnsKICAgIG15X2Jvb2wgYSA9IHRydWU7CiAgICBib29sIGIgPSB0cnVlOwogICAgYm9vbCBjID0gZmFsc2U7CgogICAgaWYgKGEgPT0gYikKICAgICAgICBjb3V0IDw8ICJhPT1iOiB0cnVlIiA8PCBlbmRsOwogICAgZWxzZQogICAgICAgIGNvdXQgPDwgImE9PWI6IGZhbHNlICIgPDwgZW5kbDsKCiAgICBpZiAoYSA9PSBjKQogICAgICAgIGNvdXQgPDwgImE9PWM6IHRydWUiIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiYT09YzogZmFsc2UgIiA8PCBlbmRsOwoKICAgIGlmIChhKQogICAgICAgIGNvdXQgPDwgImEgaXM6IHRydWUiIDw8IGVuZGw7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiYSBpczogZmFsc2UgIiA8PCBlbmRsOwp9Cg==