#include <iostream>

struct MyInt {
	MyInt() : value(0) {}
	
	MyInt& operator++() {
		std::cout << "Inside MyInt::operator++()" << std::endl;
		++value;
		return *this;
	}
	
	MyInt operator++(int)  
	{
	  MyInt temp(*this);  
	  ++(*this);  
	  return temp; 
	}
	
	int value;
};

int main() {
	MyInt mi;
	
	std::cout << "Value before: " << mi.value << std::endl;
	mi++++;
	std::cout << "Value after: " << mi.value << std::endl;
}