On Tue, Jul 22, 2014 at 02:47:51AM +0000, Vlad Levenfeld via 
Digitalmars-d-learn wrote:
> On Monday, 21 July 2014 at 19:02:59 UTC, H. S. Teoh via Digitalmars-d-learn
> wrote:
> >functionality is desirable. Maybe we should rouse a racket on the
> >main D forum to either make staticIota public, or implement static
> >foreach. ;-)
> 
> static switch would be so sick. I frequently find myself doing some
> compile-time branching with more than 2 branches or with an enum (like
> for policies/strategies/whatever). Compile-time case labels would
> clean that code up, and final switch would be a maintenance
> improvement as well.
> 
> static while sounds cool, but how would it work? (as in use case, not
> implementation). The condition would have to be immutable, wouldn't
> it?

I don't know about use cases in general, but one place where it comes in
handy is in iterating over template argument lists ("type tuples").
Currently, I have to resort to:

        Tuple!(int,int,int,int,int) fields;
        foreach (i; staticIota!(0, n))
        {
                fields[i]++; // for example
        }

Which is not bad for simple operations, but would be cleaner if we had
static while / static foreach.


T

-- 
We've all heard that a million monkeys banging on a million typewriters will 
eventually reproduce the entire works of Shakespeare.  Now, thanks to the 
Internet, we know this is not true. -- Robert Wilensk

Reply via email to