dmd foreach loops throw exceptions on invalid UTF sequences, use replacementDchar instead

max haughton maxhaton at gmail.com
Fri Nov 5 04:11:30 UTC 2021


On Friday, 5 November 2021 at 04:02:44 UTC, Walter Bright wrote:
> On 11/4/2021 7:41 PM, Mathias LANG wrote:
>> If you want to fix it, just deprecate the special case and 
>> tell people to use `foreach (dchar d; someString.byUTF!(dchar, 
>> No.useReplacementDchar))` and voilà.
>> And if they don't want it to throw, it's shorter:
>> `foreach (dchar d; someString.byUTF!dchar)` (or `byDChar`).
>
> People will always gravitate towards the smaller, simpler 
> syntax. Like [] instead of std::vector<>.

I have never observed this mistake in any C++ cod, unless you 
mean as a point of language design.

This decision should be guided by how current D programmers act 
rather than a hyperreal ideal of someone encountering the 
language.


More information about the Digitalmars-d mailing list