each! vs foreach parallel timings

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Dec 27 22:03:29 PST 2015


On 12/27/2015 04:17 PM, Jay Norwood wrote:
>> On Sunday, 27 December 2015 at 23:42:57 UTC, Ali Çehreli wrote:
>>> 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);}
>>>
>
> It builds for me still, and executes ok, but must be because size_t and
> i are both 32 bits on Win32 build.
>

Makes sense. I would still prefer size_t and even leave it out for the 
lambda:

void apply_metrics(size_t i,ref S s){
// ...

         sn = i.to!int;

// ...

     samples[].each!((i, ref a)=>apply_metrics(i,a));

Ali



More information about the Digitalmars-d-learn mailing list