On Friday, 4 December 2015 at 20:01:10 UTC, Jacob Carlborg wrote:
On 2015-12-04 17:37, Andrei Alexandrescu wrote:
Like "tail" in Unix. Given a range R r and a number size_t n, return a
TakeExactly!R that's r at no more than n steps from its end:

TakeExactly!R advanceWithin(R)(R r, size_t n)
if (isForwardRange!R);

Invariant:

assert(r.advanceWithin(n).length <= n);

Implementation would send a scout range ahead, etc.

I didn't file an issue for it, but it's a great function to have.

retro + take?

+ retro to turn it back the normal way?

Also, I think this'd work?
return r.takeExactly(r.walkLength - n);

It wouldn't be particularly efficient though I wouldn't think - as you'd need to walk the whole range to find it's length.

r.retro.take(n).retro seems like the easiest fit.

Reply via email to