
On 07/07/10 19:40, John Dlugosz wrote:
I see that the "Cons" sequence is Forward-only. reverse_view requires a Bidirectional sequence, at least. The for_each iteration function goes forward.
However, hand-written recursive loop on a cons-like thing can do stuff before and other stuff after the recursive call to the cdr portion. Putting stuff "after" will give a reversed processing. So, in general, a reversed_for_each is not out of the question, and can be specialized for Cons when the general form of iterating backwards does not work.
I also ponder that a more general form that indeed does stuff before AND other stuff after recursing the tail would be a useful addition. It might actually perform one operation iterating forward, then perform the other operation iterating backward back to the beginning; or use recursion; depending on the nature of the container.
[snip] Sounds like the if_recur template metaprogram found here: http://svn.boost.org/svn/boost/sandbox/variadic_templates/boost/mpl/if_recur... does what your asking, except for templates, not values. I'd guess it could serve as a guide on how to do it for values. -regards, Larry