struct Base { Base(Base *) {} }; struct A { Base base; struct _tag_x : public Base { _tag_x() : Base(reinterpret_cast<Base *>(&base)) {} } x; };