#include <iostream>
#include <memory>
#include <string>
struct A
{
A(std::string const& str) : name(str) { std::cout << "A" << std::endl; }
~A() { std::cout << "~A" << std::endl; }
std::string name;
};
struct B : A
{
B(std::string const& s) : A(s) { std::cout << "B" << std::endl; }
~B() { std::cout << "~B" << std::endl; }
};
int main()
{
std::unique_ptr<A> obj(new B("leaky"));
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgojaW5jbHVkZSA8c3RyaW5nPgoKc3RydWN0IEEKewogICAgQShzdGQ6OnN0cmluZyBjb25zdCYgc3RyKSA6IG5hbWUoc3RyKSB7IHN0ZDo6Y291dCA8PCAiQSIgPDwgc3RkOjplbmRsOyB9CiAgICB+QSgpIHsgc3RkOjpjb3V0IDw8ICJ+QSIgPDwgc3RkOjplbmRsOyB9CgogICAgc3RkOjpzdHJpbmcgbmFtZTsKfTsKCnN0cnVjdCBCIDogQQp7CiAgICBCKHN0ZDo6c3RyaW5nIGNvbnN0JiBzKSA6IEEocykgeyBzdGQ6OmNvdXQgPDwgIkIiIDw8IHN0ZDo6ZW5kbDsgfQogICAgfkIoKSB7IHN0ZDo6Y291dCA8PCAifkIiIDw8IHN0ZDo6ZW5kbDsgfQp9OwoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnVuaXF1ZV9wdHI8QT4gb2JqKG5ldyBCKCJsZWFreSIpKTsKCiAgICByZXR1cm4gMDsKfQo=