#include <iostream>
using namespace std;
template <typename T> const T *ref_to_ptr(const T &x)
{
return &x;
}
class Test
{
public:
Test() { cout << "ctor: " << this << endl; }
~Test() { cout << "dtor: " << this << endl; }
};
void print(const Test * val)
{
cout << val << endl;
}
int main()
{
print(ref_to_ptr(Test()));
const Test * ptr = ref_to_ptr(Test());
print(ptr);
cout << "The end.\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjb25zdCBUICpyZWZfdG9fcHRyKGNvbnN0IFQgJngpCnsKICByZXR1cm4gJng7Cn0KCmNsYXNzIFRlc3QKewpwdWJsaWM6CiAgICBUZXN0KCkgIHsgY291dCA8PCAiY3RvcjogIiA8PCB0aGlzIDw8IGVuZGw7IH0KICAgIH5UZXN0KCkgeyBjb3V0IDw8ICJkdG9yOiAiIDw8IHRoaXMgPDwgZW5kbDsgfQp9OwoKdm9pZCBwcmludChjb25zdCBUZXN0ICogdmFsKQp7CiAgICBjb3V0IDw8IHZhbCA8PCBlbmRsOwp9CgppbnQgbWFpbigpCnsKICAgIHByaW50KHJlZl90b19wdHIoVGVzdCgpKSk7CiAgICBjb25zdCBUZXN0ICogcHRyID0gcmVmX3RvX3B0cihUZXN0KCkpOwogICAgcHJpbnQocHRyKTsKICAgIGNvdXQgPDwgIlRoZSBlbmQuXG4iOwogICAgcmV0dXJuIDA7Cn0K