#include <iostream>
#include <memory>
struct member
{
~member() { std::cout << __PRETTY_FUNCTION__ << std::endl; }
};
struct owner
{
owner(std::unique_ptr<member>&& ptr)
: ptr_(std::move(ptr))
{ }
std::unique_ptr<member> ptr_;
};
int main()
{
owner o(std::make_unique<member>());
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2luY2x1ZGUgPG1lbW9yeT4KCnN0cnVjdCBtZW1iZXIKewogIH5tZW1iZXIoKSB7IHN0ZDo6Y291dCA8PCBfX1BSRVRUWV9GVU5DVElPTl9fIDw8IHN0ZDo6ZW5kbDsgfQp9OwoKc3RydWN0IG93bmVyCnsKICBvd25lcihzdGQ6OnVuaXF1ZV9wdHI8bWVtYmVyPiYmIHB0cikKICAgIDogcHRyXyhzdGQ6Om1vdmUocHRyKSkKICB7IH0KCiAgc3RkOjp1bmlxdWVfcHRyPG1lbWJlcj4gcHRyXzsKfTsKCmludCBtYWluKCkKewogIG93bmVyIG8oc3RkOjptYWtlX3VuaXF1ZTxtZW1iZXI+KCkpOwp9Cg==