#include <iostream>
#include <memory>

struct Test {
	Test(int i) : _i(i) {}
    ~Test() { std::cout << _i << std::endl; }
    int _i;
};

struct A {
    std::unique_ptr<Test> x {std::make_unique<Test>(1)};
};

struct B: public A {
    std::unique_ptr<Test> x {std::make_unique<Test>(2)};
};

int main(void) {
	A *ptr = new B;
	delete ptr;
}
