Steven Watanabe wrote:
What are you casting to a superclass?
The functor merge_fused above is not a proper fused function object. In this case, I did a template< typename Base, int N > struct select: Base { template< typename Seq > void operator()( Seq& seq ) { Base::template operator()<N>(seq); } } to make N proper fused function objects. Although it is a nice trick, I guess this was not my real question.
What is the "Fused Counterpart" of Seq.
This is more in the direction of the real question :-) .. The question is, I guess, if you do g = make_fused( f ) then, are the parameter types of f still available in g somehow?
Is Seq always that same type?
No, it is not, and I suspect it is just the sequence type passed by the user. To make it all safe (and, if I'm going to use this approach), I guess I neeed to pass more type information myself. Thanks, Cheers, Rutger