each! vs foreach parallel timings

Jay Norwood via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Dec 27 16:12:23 PST 2015


On Sunday, 27 December 2015 at 23:42:57 UTC, Ali Çehreli wrote:
> On 12/27/2015 11:30 AM, Jay Norwood wrote:
>
> >      samples[].each!((int i, ref a)=>apply_metrics(i,a));
>
> Are you using an older compiler? That tuple expansion does not 
> work any more at least with dmd v2.069.0 but you can use 
> enumerate():
>
>         
> samples[].enumerate.each!(t=>apply_metrics(t[0].to!int,t[1]));
>
> >          foreach( i, ref a; parallel(samples[])){
> apply_metrics(i,a);}
>
> That does not compile because i is size_t but apply_metrics() 
> takes an int. One solution is to call to!int:
>
>         foreach( i, ref a; parallel(samples[])){ 
> apply_metrics(i.to!int,a);}
>
> To not answer your actual question, I don't think it's 
> possible. :)
>
> Ali

The code I posted was compiled with v2.069.2.  It isn't creating 
a tuple return value in this code. I'll re-check it.


More information about the Digitalmars-d-learn mailing list