#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;
}