On Sun, Jul 27, 2014 at 07:42:17PM -0700, Timothee Cour via Digitalmars-d-learn 
wrote:
> Just for clarification, I wanted 'myrange.at(i)' to be the same as
> `myrange.dropExactly(i).front`
> (so I don't assume it's a random access range).
> 
> >> myrange.dropExactly(i).front makes it much more obvious what you're
> doing and that it's inefficient. It might be necessary in some cases,
> but we don't want to give the impression that it's cheap, which at()
> would do.
> 
> I think it's already clear that it's potentially O(n) [n=i] cost as
> we're not using myrange[i]. But fine, call it atWalk/walkAt/whatever.
> Point is it's a common enough operation.
[...]

You could just define your own function for it, right?

        // or call it whatever you want
        auto getNth(R)(R range, size_t index)
                if (isInputRange!R)
        {
                return range.dropExactly(index).front;
        }


T

-- 
Making non-nullable pointers is just plugging one hole in a cheese grater. -- 
Walter Bright

Reply via email to