#include <iostream>
struct A
{
A(int position) : position(position) {}
virtual ~A() = default;
int position;
};
struct B : public A
{
using A::A;
};
struct C : public B
{
using B::B;
};
struct D : public B
{
using B::B;
};
int main() {
D d(42);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEEKewogICAgQShpbnQgcG9zaXRpb24pIDogcG9zaXRpb24ocG9zaXRpb24pIHt9CiAgICB2aXJ0dWFsIH5BKCkgPSBkZWZhdWx0OwoKICAgIGludCBwb3NpdGlvbjsKfTsKCnN0cnVjdCBCIDogcHVibGljIEEKewogICAgdXNpbmcgQTo6QTsKfTsKCnN0cnVjdCBDIDogcHVibGljIEIKewogICAgdXNpbmcgQjo6QjsKfTsKCnN0cnVjdCBEIDogcHVibGljIEIKewogICAgdXNpbmcgQjo6QjsKfTsKCgppbnQgbWFpbigpIHsKCUQgZCg0Mik7Cn0=