On Tuesday, 22 February 2022 at 12:48:21 UTC, frame wrote:
What am I missing here? Is this some UTF conversion issue?

```d
string a;
char[] b;

pragma(msg, typeof(a.take(1).front)); // dchar
pragma(msg, typeof(b.take(1).front)); // dchar
```

This is a feature of the D standard library known as "auto decoding":

as a convenience, when iterating over a string using the range functions, each element of strings and wstrings is converted into a UTF-32 code-point as each item. This practice, known as auto decoding, means that

`static assert(is(typeof(utf8.front) == dchar));`

Source: https://tour.dlang.org/tour/en/gems/unicode

Reply via email to