Boost logo

Boost :

From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2002-07-19 04:04:55


Gennadiy Rozental wrote:
> Cuold you help me out with chapter 2.3.5. In general I do
> not understand how iter_fold is working.
>
> Here is the list of specificisues:
>
> 1. Could you somehow in pseudoterms explain how iter_fold is
> defined and what is it doing? Just like
> std::accumulate( Iter begin, Iter end, T& res, Predicate p,
> ) { while(
> begin != end ) { res += p(begin++); } }

Is this of any help -
http://www.mywikinet.com/mpl/ref/Reference/iter_fold.html?

> 2. Second argument: what is it state or iterator?

State. See the reference.

> 3. In your code there is no iter_fold with four arguments.
> Why does docs says so?

The interface has changed recently, and I forgot to update the article in
this respect - thanks for catching it. The up-to-date way to do a two-way
iteration on the sequence is to use 'iter_fold_backward' - see
http://www.mywikinet.com/mpl/ref/Reference/iter_fold_backward.html.

> 4. What are fold and reverce_fold algorithms are doing?

See the reference doc. Note that 'fold_reverse' has been renamed to
'fold_backward' (another missed change).

> 5. select_max does not have anything to do with max. Would
> not it be better to name something like select_by_predicate

Correct, but it's just a helper function for 'max_element', and IMO giving
it a general name like 'select_by_predicate' is undesirable. BTW, it's not
needed with lambda anyway ;).

> 6. What is project1st?

A compile-time equivalent of this one -
http://www.sgi.com/tech/stl/project1st.html. I'll add it to the reference.

Aleksey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk