#include <iostream>
#include <memory>
using namespace std;
struct Foo
{
Foo(std::string v) : value(v) {}
void Bar() { std::cout << "Hello, " << value << "!" << std::endl; }
std::string value;
};
int main() {
std::unique_ptr<Foo> FooPtr = std::make_unique<Foo>("World");
FooPtr->Bar();
FooPtr.get()->Bar();
(*FooPtr).Bar();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBGb28KewoJRm9vKHN0ZDo6c3RyaW5nIHYpIDogdmFsdWUodikge30KCXZvaWQgQmFyKCkgeyBzdGQ6OmNvdXQgPDwgIkhlbGxvLCAiIDw8IHZhbHVlIDw8ICIhIiA8PCBzdGQ6OmVuZGw7IH0KCXN0ZDo6c3RyaW5nIHZhbHVlOwp9OwoKaW50IG1haW4oKSB7CgkKCXN0ZDo6dW5pcXVlX3B0cjxGb28+IEZvb1B0ciA9IHN0ZDo6bWFrZV91bmlxdWU8Rm9vPigiV29ybGQiKTsKCUZvb1B0ci0+QmFyKCk7CglGb29QdHIuZ2V0KCktPkJhcigpOwoJKCpGb29QdHIpLkJhcigpOwoJCglyZXR1cm4gMDsKfQ==