On Tuesday, 11 March 2014 at 18:26:36 UTC, Johannes Pfau wrote:
I think the problem here is that if ranges / algorithms have to work on the same data type as slicing/indexing. If .front returns code units, then indexing/slicing should be done with code units. If it returns code points then slicing has to happen on code points for consistency or it should be disallowed. (Slicing on code units is important - no
doubt. But it is error prone and should be explicit in some way:
string.sliceCP(a, b) or string.representation[a...b])

I think it is import to remember that in terms of ranges/algorithms, strings are not indexable, nor sliceable ranges.

The "only way" to generically slice a string in generic code, is to explicitly test that a range is actually a string, and then knowingly call an "internal primitive" that is NOT a part of the range traits.

So slicing/indexing *is* already disallowed, in terms of range/algorithms anyways.

Reply via email to