> Andrej Mitrovic: > > I just had a little bug in my code. In the WindowsAPI, there's this > > alias: > > > > alias ubyte BYTE; > > > > Unfortunately I didn't check for this, and I erroneously assumed BYTE was > > a signed value (blame it on my lack of coffee). > > I and Don have asked (in Bugzilla and elsewhere) to change the built-in > names into sbyte and ubyte, to avoid the common confusions between signed > and unsigned bytes in D, but Walter was deaf to this. > > > But what really surprises me is that these unsigned to signed conversions > > happen implicitly. I didn't even get a warning, even though I have all > > warning switches turned on. > > Add your vote here (I have voted this), a bug report from 07 2006, but > Walter doesn't like this warning, and warnings in general too: > http://d.puremagic.com/issues/show_bug.cgi?id=259
Personally, I see _zero_ value in renaming byte, int, etc. to sbyte, sint, etc. It's well-known that they're signed. I don't see how adding an extra s would make that any clearer. Their names are perfectly clear as they are. However, I also would have thought that converting between signed and unsigned values would be just as much of an error as narrowing conversions are - such as assigning an int to a byte. And arguably, assigning either an unsigned value to a signed value or vice versa is _also_ a narrowing conversion. So, I would have thought that it would be an error. Apparently not though. - Jonathan M Davis
