On Saturday, 1 October 2016 at 18:33:02 UTC, TheFlyingFiddle
wrote:
On Saturday, 1 October 2016 at 16:45:11 UTC, Uranuz wrote:
[...]
There are two reasons why this does not compile. The first has
to do with how retro() (and indeed most function in std.range)
work with utf-8 strings (eg the string type). When working on
strings as ranges, the ranges internally change the type of
".front" from 'char' into 'dchar'. This is done to ensure that
algorithms working on strings do not violate utf-8.
[...]
Thanks for clarification. It seems that once upon a time I'll
write my own string wrapper that will return just slice of
`string` pointing to source multibyte sequence as .front and will
use it, and be happy. When I looking more at other languages
(like Python) then I more convinced that working with UTF-8
string as array of single bytes is not very good