Feature request: "noexport" keyword
Nick Sabalausky
a at a.a
Sun Feb 20 13:50:25 PST 2011
"Nick Sabalausky" <a at a.a> wrote in message
news:ijs2f1$5ri$1 at digitalmars.com...
> "Bekenn" <leaveme at alone.com> wrote in message
> news:ijrjh2$20sv$1 at digitalmars.com...
>> On 2/19/2011 11:30 PM, Nick Sabalausky wrote:
>>> "Bekenn"<leaveme at alone.com> wrote in message
>>> news:ijqffm$6lk$1 at digitalmars.com...
>>> I'm not 100% certain, but I think this should already do what you want:
>>>
>>> export extern (Windows):
>>> void func1();
>>> int func2();
>>>
>>> public:
>>> void func3();
>>> void func4();
>>>
>>>
>>>
>>
>>
>> Hmm... I think you may be right. I hadn't considered that, but it makes
>> sense. I was thinking that the "export" attribute was independent of the
>> other protection attributes, which would introduce an asymmetry: private,
>> package, and public could each be overridden by supplying a different
>> protection attribute, but export couldn't be overridden. However,
>> thinking about it, a "private export" wouldn't make much sense (and
>> "export" is listed as a protection attribute, right along with the
>> others), so I guess they must all be mutually exclusive.
>>
>> I just tested this by trying to compile a module with the following line:
>>
>> public export void func();
>>
>> The compiler rejects it with the message "redundant protection
>> attribute." I think that pretty clearly settles this issue.
>
> Yea. Actually I just happened to be reading the section about protection
> attributes in Andrei's "The D Programming Language" book just the other
> day, and the way it talked about them indicated they were all
> mutually-exclusive. Were it not for that, I probably would have made the
> same assumption as you. Not sure why, though, because as you say,
> "private/protected export" doesn't seem to make much sence.
>
Keep in mind though, I have *no* idea how "extern(...)" fits in to all of
this.
More information about the Digitalmars-d
mailing list