Boost logo

Boost :

Subject: Re: [boost] compile-time for-loop
From: klaus triendl (klaus_at_[hidden])
Date: 2009-09-02 17:17:16

"Larry Evans" <cppljevans_at_[hidden]> schrieb im Newsbeitrag
> On 09/01/09 03:12, klaus triendl wrote:
>> I wonder whether a compile-time for-loop is useful enough so that it
>> would
>> get included in the mpl library;
>> it's very similar to what fold does but it can be used for computations
>> with
>> types other than sequence
>> containers.
>> The loop construct takes a start value, a loop condition and a
>> function calculating the next start value for the next loop recursion and
>> additionally a state together with a binary operation serving as loop
>> body:
> [snip]
> This sounds like while_recur found here:
> This was part of a proposed patch to mpl's iter_fold_if to solve
> a problem another booster had:
> However, for some reason (people too busy or maybe there's some
> bug someone's seen in while_recur), the topic's cooled off since
> there's no posts since 6/10/2009 :(

while_recur looks very similar to what I've thought of, but it can't do what
I want (e.g. can't calculate the cross total from a given number)

The for-loop I imagine has two important characteristics:
1) resembles a runtime for-loop
2) loop expressions are separate from the state to calculate

pseudo runtime code to illustrate what I mean:
type state;
for(type loopvalue = start;
    loopvalue = binarynext(state, loopvalue))
    state = binaryop(state, loopvalue);


Boost list run by bdawes at, gregod at, cpdaniel at, john at