The purpose of std.range.StoppingPolicy.longest is to change the behaviour of zip to "Stop when the longest range is exhausted". But this code with DMD 2.051 shows it doesn't stop looping (problem found by tsukikage): import std.c.stdio:printf; import std.range: zip, StoppingPolicy; void main() { int[] array = [1, 2]; auto count = 0; foreach (p; zip(StoppingPolicy.longest, array)) if (count++ < 30) printf("%d\n", p[0]); else break; } Output: 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ------------------------------ Additionally a small enhancement request. Instead of writing: zip(StoppingPolicy.longest, array) I think this is enough, and shorter, but a bit less clear, so I am not sure if this OK: zip(Zip.longest, array)
Oh, sorry, I didn't notice that you already assigned it to yourself, Andrei – I just submitted a patch via a GitHub pull request: https://github.com/D-Programming-Language/phobos/pull/1
(In reply to comment #1) > Oh, sorry, I didn't notice that you already assigned it to yourself, Andrei – I > just submitted a patch via a GitHub pull request: > > https://github.com/D-Programming-Language/phobos/pull/1 The pull request is a great way. I just followed it. Thanks very much!