On Fri, May 15, 2009 at 17:15, Daniel James <daniel_james@fmail.co.uk> wrote:
The relevant point is that bringToFront's first range can step over the second range.
I'm very curious how that's supposed to work. What if, for example, the second range is a superset of the first? Or, since they can be two different types, what happens if I do the same thing as the above, but "retro" one or both of the ranges? It just sounds brittle to me. Or, even simpler, how do I do this? size_t strnlen(char *p, size_t n) { return find(p, p+n, '\0') - p; } That's the size of a range, but I don't know how to get that range. Perhaps it really means that find should be a certain kind of split, not a reducer: size_t strnlen(char *p, size_t n) { auto rr = find( make_range(p, n), '\0' ); return rr.first.size(); } But then what if I want the range before the k-th occurance of something? Then I'd have to somehow concat all the front ranges, which would give me who knows what type. It feels like n iterators gives you n*n different ranges, but that there's no obvious way to get them from n ranges.