struct Entry {
int x;
int y;
};
struct Indirect : public Entry { };
template<typename T> struct EntryOr : public T, Indirect { } ;
// From C code
struct A {
int x;
}
int main()
{
EntryOr<A> foo;
foo.x = 5; // A::x
foo.y = 7; // Entry::y
}
c3RydWN0IEVudHJ5IHsKICBpbnQgeDsKICBpbnQgeTsKfTsKc3RydWN0IEluZGlyZWN0IDogcHVibGljIEVudHJ5IHsgfTsKdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IEVudHJ5T3IgOiBwdWJsaWMgVCwgSW5kaXJlY3QgeyB9IDsKCi8vIEZyb20gQyBjb2RlCnN0cnVjdCBBIHsKICBpbnQgeDsKfQoKaW50IG1haW4oKQp7CiAgRW50cnlPcjxBPiBmb287CiAgZm9vLnggPSA1OyAvLyBBOjp4CiAgZm9vLnkgPSA3OyAvLyBFbnRyeTo6eQp9