extend foreach to work on non-arrays

Neia Neutuladh neia at ikeran.org
Thu May 24 23:02:00 UTC 2018


On Thursday, 24 May 2018 at 22:43:00 UTC, IntegratedDimensions 
wrote:
> Doesn't make any sense?
>
> foreach(a; x)
>
> if x is not an array then a = x and the loop reduces simply and 
> function to the case it is not so their can be no harm.
>
> It unifies the concepts so that one does not have to worry if x 
> is an array or not and can offer no harm since when x is not an 
> array everything simply reduces to an an alias of x.

You can already do this for any type you define:

class Foo
{
   auto iterate() { return only(this); }
   alias iterate this;
}

Can you give examples of code that is awkward today that would be 
simplified with your proposal? I don't expect people to give full 
cost-benefit analyses for every suggestion, but it'd be nice if 
you could at least mention some of the upsides.


More information about the Digitalmars-d mailing list