On 08/06/14 16:25, monarch_dodra via Digitalmars-d-learn wrote:
Arguably, the issue is the difference between "invalid" and downright "illegal"
values. The thing about dchar is that while it *can* have values higher than
dchar max, it's (AFAIK) illegal to have them, and the compiler (if it can) will
flag you for it:
dchar c1 = 0x0000_D800; //Invalid, but fine.
dchar c2 = 0xFFFF_0000; //Illegal, nope.
Yup. If you use an invalid wchar (say, via writeln), you'll get a nonsense
symbol on your screen, but it will work. Try and writeln a dchar whose value is
greater than dchar.max and you'll get an exception/error thrown.