fork download
  1. #include <iostream>
  2. class fake_int {
  3. public:
  4. int value;
  5. fake_int(int i): value(i) {
  6. }
  7.  
  8. friend fake_int& operator+(fake_int& i) {
  9. i.value += 100500;
  10. return i;
  11. }
  12.  
  13. fake_int& operator=(const int right) {
  14. value = right * 42;
  15. return *this;
  16. }
  17. };
  18.  
  19.  
  20. int main() {
  21. #define int fake_int
  22. int a = 1;
  23.  
  24. std::cout << "a = " << a.value << " after `a = 1;`" << std::endl;
  25.  
  26. +a;
  27.  
  28. std::cout << "a = " << a.value << " after `+a;`" << std::endl;
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
a = 1 after `a = 1;`
a = 100501 after `+a;`