[fusion] flat fusion sequence of all the node of a type

Hi, I want to create a fusion sequence that give access to all the nodes of a struct/class/array that inherit from a given class TO. If we remove this constraint, the fusion sequence can be seen as flattening the tree of nodes in a given order. Once I will have this I can use filter_if<is_base_of<TO,_> > Given class TO; struct W { TO t; }; struct X : TO { // direct TO* to_ptr; char c; }; struct Y : TO { // direct with embeddeds X x; int i; }; struct Z { // with embeddeds Y y[2]; TO t; W w; }; Z z; the flat view corrsponds to z.w.t, z.w, z.t, z.y[0].x.to_ptr, z.y[0].x.c, z.y[0].x, z.y[0], z.y[1].x.to_ptr, z.y[1].x.c, z.y[1].x, z.y[1], z.y, z The filtered view corrsponds to Y z.y[0] X z.y[0].x Y z.y[1] X z.y[1].x TO z.t TO z.w.t If I have fusion sequence struct adaptors for W, X, Y, Z. Is there a simple and run-time efficient way to get this fusion sequence adaptor or I need to do something similar to the struct adaptor? Have others had a similar need already? Best, Vicente P.S. For my personal usage I need only a forward sequence.
participants (1)
-
vicente.botet