http://d.puremagic.com/issues/show_bug.cgi?id=5935
Summary: Non-tuple iteration with std.range.zip Product: D Version: D2 Platform: All OS/Version: All Status: NEW Keywords: patch Severity: enhancement Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: k.hara...@gmail.com --- Comment #0 from Kenji Hara <k.hara...@gmail.com> 2011-05-06 07:37:46 PDT --- Zip sequence should provide non-tuple version foreach like this: ---- foreach (i, c; zip(sequence!"n"(), "str")) { if (i==0) assert(c == 's'); else if (i==1) assert(c == 't'); else if (i==2) assert(c == 'r'); else assert(0); } ---- Patch: std/range.d | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/std/range.d b/std/range.d index 7e7916c..0a24500 100644 --- a/std/range.d +++ b/std/range.d @@ -3209,6 +3209,21 @@ if(Ranges.length && allSatisfy!(isInputRange, staticMap!(Unqual, Ranges))) } } } + +/** + Iterate zip elements with directry named heads of ranges. + */ + int opApply(int delegate(ref ElementType.Types) dg) + { + auto r = this; + for (; !r.empty; r.popFront()) + { + auto e = r.front; + if (auto result = dg(e.field)) + return result; + } + return 0; + } } /// Ditto -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------