Boost logo

Boost Users :

Subject: Re: [Boost-users] Odd limitation in Fusion design ?
From: Larry Evans (cppljevans_at_[hidden])
Date: 2010-07-07 21:26:46

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.


Sounds like the if_recur template metaprogram found here:

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.



Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at