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