On Fri, May 15, 2009 at 17:15, Daniel James
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.