struct B; struct A { int x; operator B() { B r; r.a.x = 0; r.b.x = x; return r; } }; struct B { A a; A b; };