Lockstep iteration in parallel: Error: cannot have parameter of type `void`
Ali Çehreli
acehreli at yahoo.com
Sat May 20 18:27:47 UTC 2023
On 5/20/23 04:21, kdevel wrote:
> Thanks for your explications!
>
> On Friday, 19 May 2023 at 21:18:28 UTC, Ali Çehreli wrote:
>> [...]
>> - std.range.zip can be used instead but it does not provide 'ref'
>> access to its elements.
>
> How/why does sort [1] work with zipped arrays?
I don't know but wholesale assignment to zip's elements do transfer the
effect, which sort does while swapping elements. However, copies of
those range elements do not carry that effect:
import std;
void main() {
auto a = [ 0, 1 ];
auto z = zip(a);
z[0] = z[1];
writeln("worked: ", a);
zip(a).each!(e => e = 42);
writeln(" nope: ", a);
}
And each does not take (ref e) as a parameter at least in that use case.
>> The following amap example there may be useful for your case but I
>> could not make the types work:
>
> Do you mean using the function pointer does not work?
I simply copied the example code bet there were mismatches between
float, real, etc.
And I've just discovered something. Which one of the following is the
expected documentation?
https://dlang.org/library/std/parallelism.html
https://dlang.org/phobos/std_parallelism.html
What paths did I take to get to those? I hope I will soon be motivated
enough to fix such quality issues.
Ali
More information about the Digitalmars-d-learn
mailing list