On Monday, 15 January 2018 at 06:18:27 UTC, SimonN wrote:
D's foreach [...] will autodecode and silently iterate over dchar, not char, even when the input is string
That's not true. foreach will only decode on demand: string s; foreach(c; s) { /* c is a char here, it goes over bytes */ } foreach(char c; s) { /* c is a char here, same as above */ } foreach(dchar c; s) { /* c is a dchar - this decodes */ }Autodecoding is a Phobos library artifact, NOT something in the D language itself.