https://issues.dlang.org/show_bug.cgi?id=18797

          Issue ID: 18797
           Summary: Use of "isInputRange" in various functions is
                    overly-restrictive
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: phobos
          Assignee: nob...@puremagic.com
          Reporter: e...@weka.io

std.algorithm.sorting.topNCopy, for example, uses isInputRange!SRange when it
merely iterates its elements. To iterate the elements, an opApply range is
fine, but is unnecessarily forbidden.

Various other phobos functions use isInputRange when they only need the ability
to iterate.

Need a "isForeachRange" template perhaps, to replace "isInputRange" when only
foreach is needed? Or perhaps an assertion on the "ForeachType!T" should be
used instead here?

--

Reply via email to