#include <iostream>
using namespace std;
struct tmp {
int i;
const int *get_i() const { return &i; }
tmp() : i(42) {}
~tmp() { cout << "tmp destroyed" << endl; }
};
tmp gettmp()
{
tmp t;
return t;
}
int main() {
cout << "Begin" << endl;
const tmp &t = gettmp();
const int *i = t.get_i();
cout << "end" << endl;
cout << "[Happy] i is still alive : " << *i << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHRtcCB7CglpbnQgaTsKCWNvbnN0IGludCAqZ2V0X2koKSBjb25zdCB7IHJldHVybiAmaTsgfQoJdG1wKCkgOiBpKDQyKSB7fQoJfnRtcCgpIHsgY291dCA8PCAidG1wIGRlc3Ryb3llZCIgPDwgZW5kbDsgfQp9OwoKdG1wIGdldHRtcCgpCnsKICB0bXAgdDsKICByZXR1cm4gdDsKfQoKaW50IG1haW4oKSB7Cgljb3V0IDw8ICJCZWdpbiIgPDwgZW5kbDsKCWNvbnN0IHRtcCAmdCA9IGdldHRtcCgpOwoJY29uc3QgaW50ICppID0gdC5nZXRfaSgpOwoJY291dCA8PCAiZW5kIiA8PCBlbmRsOwoKCWNvdXQgPDwgIltIYXBweV0gaSBpcyBzdGlsbCBhbGl2ZSA6ICIgPDwgKmkgIDw8IGVuZGw7CgkKCXJldHVybiAwOwp9