http://d.puremagic.com/issues/show_bug.cgi?id=5506
Summary: StoppingPolicy.longest doesn't work well Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Keywords: wrong-code Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: bearophile_h...@eml.cc --- Comment #0 from bearophile_h...@eml.cc 2011-01-30 04:59:21 PST --- 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) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------