#include <iostream>
using namespace std;
template <typename T>
struct example {
T* p_;
example(T* p): p_{p} {
cout << "example(T* p)\n";
}
~example() {
cout << "~example()\n";
delete p_;
}
};
int main() {
cout << "start main\n";
example<int> p{new int};
cout << "end main\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBleGFtcGxlIHsKCVQqIHBfOwoJZXhhbXBsZShUKiBwKTogcF97cH0gewoJCWNvdXQgPDwgImV4YW1wbGUoVCogcClcbiI7Cgl9Cgl+ZXhhbXBsZSgpIHsKCQljb3V0IDw8ICJ+ZXhhbXBsZSgpXG4iOwoJCWRlbGV0ZSBwXzsKCX0KfTsKCmludCBtYWluKCkgewoJY291dCA8PCAic3RhcnQgbWFpblxuIjsKCWV4YW1wbGU8aW50PiBwe25ldyBpbnR9OwoJY291dCA8PCAiZW5kIG1haW5cbiI7CglyZXR1cm4gMDsKfQ==