#include <iostream>
#include <memory>
using namespace std;
struct T
{
void foo() {}
};
int main() {
auto a1 = new T;
a1->foo();
auto a2 = make_shared<T>();
a2->foo();
auto a3 = make_unique<T>();
a3->foo();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFQKewoJdm9pZCBmb28oKSB7fQp9OwoKaW50IG1haW4oKSB7CglhdXRvIGExID0gbmV3IFQ7CglhMS0+Zm9vKCk7CgkKCWF1dG8gYTIgPSBtYWtlX3NoYXJlZDxUPigpOwoJYTItPmZvbygpOwoJCglhdXRvIGEzID0gbWFrZV91bmlxdWU8VD4oKTsKCWEzLT5mb28oKTsKfQ==