The new core.sys.windows

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Thu Oct 15 01:34:08 PDT 2015


On 10/15/2015 1:18 AM, Dmitry Olshansky wrote:
> On 15-Oct-2015 00:52, Vladimir Panteleev wrote:
>> For example: usage of named enums. In C, all enums (or #defines) all
>> live within the name namespace, with a prefix serving as the
>> disambiguating "namespace", and all are implicitly convertible to each
>> other. In many places, the bindings use named enums instead, which
>> provides the advantage of strong typing - if a function accepts a
>> parameter of a certain enum, you cannot accidentally pass a member of
>> another enum.
>>
>
> Being a windows developer while I was young (and foolish) I would use
> wrong constants in the wrong parameter all the time. Even with some time
> passing I had to double check every argument manually. So yes, please -
> strong enums are hugely beneficial.

I know how tempting it is to "fix" windows headers (or other operating 
system headers). We made a decision long ago that this is not on the 
agenda of the D project. We simply make the closest approximation of 
them possible, and go with that.

Taking on the task of "fixing" headers like that makes us then 
responsible for documenting them, being responsible for them, etc., that 
is way, way beyond our resources. By sticking with them the way they 
are, we simply refer people to the OS vendor documentation on how they 
are to be correctly used, for better or worse.

Also, it means that C code that deals with those APIs is directly 
transcribable to D without going through another translation process.

I agree that they would be better if fixed, but the D project is not 
going to do that. If anyone wants to make a set of fixed windows 
imports, that's great, but it wouldn't be a part of the official D release.



More information about the Digitalmars-d mailing list