On Monday, 10 June 2019 at 08:02:18 UTC, vitalfadeev wrote:
On Monday, 10 June 2019 at 07:45:42 UTC, vitalfadeev wrote:
On Monday, 10 June 2019 at 07:41:40 UTC, vitalfadeev wrote:
How to?

I plan scan First array with checkers:
[checker, checker, checker]

...and store result to Second array:
[0, 0, 1]

In next code 'r' not reference. But expected ref.

    import std.range : zip;

    foreach(checker, ref r; zip(checkers, result.set)) {
       r = checker();
    }

Replace zip with lockstep and your example works.

"zip is similar to lockstep, but lockstep doesn't bundle its elements and uses the opApply protocol. lockstep allows reference access to the elements in foreach iterations."

https://dlang.org/library/std/range/zip.html

"Function lockstep

Iterate multiple ranges in lockstep using a foreach loop. In contrast to zip it allows reference access to its elements."

https://dlang.org/library/std/range/lockstep.html

Reply via email to