On Wednesday, 11 June 2014 at 22:20:27 UTC, Walter Bright wrote:
I've got an enhancement request to have it behave like extern(C):

    https://issues.dlang.org/show_bug.cgi?id=12894

Thoughts? Anyone use extern(Windows) on non-Windows systems?

That example of "I want this calling convention on platform X and that other convention on platform Y" points to the deeper problem that (without a preprocessor) you can't do something like this in D:

    version(Windows)
        alias extern(Foo) = extern(Windows);
    else
        alias extern(Foo) = extern(C);

    extern(Foo):
        void foobar();
        int baz();

That reasoning also applies to various other attributes. IMO, repeating all of the declarations for the multiple variants you might want is not the right answer (DRY principle, etc.).

Reply via email to