#include <iostream>
class fake_int {
public:
int value;
fake_int(int i): value(i) {
}
friend fake_int& operator+(fake_int& i) {
i.value += 100500;
return i;
}
fake_int& operator=(const int right) {
value = right * 42;
return *this;
}
};
int main() {
#define int fake_int
int a = 1;
std::cout << "a = " << a.value << " after `a = 1;`" << std::endl;
+a;
std::cout << "a = " << a.value << " after `+a;`" << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgpjbGFzcyBmYWtlX2ludCB7CiAgcHVibGljOgogICAgaW50IHZhbHVlOwogICAgZmFrZV9pbnQoaW50IGkpOiB2YWx1ZShpKSB7CiAgICB9CgogICAgZnJpZW5kIGZha2VfaW50JiBvcGVyYXRvcisoZmFrZV9pbnQmIGkpIHsKICAgICAgaS52YWx1ZSArPSAxMDA1MDA7CiAgICAgIHJldHVybiBpOwogICAgfQoKICAgIGZha2VfaW50JiBvcGVyYXRvcj0oY29uc3QgaW50IHJpZ2h0KSB7CiAgICAgIHZhbHVlID0gcmlnaHQgKiA0MjsKICAgICAgcmV0dXJuICp0aGlzOwogICAgfQp9OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCmludCBtYWluKCkgewojZGVmaW5lIGludCBmYWtlX2ludAogICBpbnQgYSA9IDE7CgogICBzdGQ6OmNvdXQgPDwgImEgPSAiIDw8IGEudmFsdWUgPDwgIiBhZnRlciBgYSA9IDE7YCIgPDwgc3RkOjplbmRsOwogICAKICAgK2E7CgogICBzdGQ6OmNvdXQgPDwgImEgPSAiIDw8IGEudmFsdWUgPDwgIiBhZnRlciBgK2E7YCIgPDwgc3RkOjplbmRsOwoKICAgcmV0dXJuIDA7Cn0=