TheFlyingFiddle:
I'm curious, why is the .front property of narrow strings of
type dchar?
And not the underlying character type for the string.
There was a long discussion on this. It was chosen this way to
allow most range-based algorithms to work correctly on UTF8 and
UTF16 strings.
In some cases you can use the std.string.representation function
to avoid to pay the UTF decoding, or/and to use some algorithms
as sort().
But for backwards compatibility reasons in this code:
foreach (c; "somestring")
c is a char, not a dchar. You have to type it explicitly to
handle the UTF safely:
foreach (dchar c; "somestring")
Bye,
bearophile