extern(C++, ns)

Manu via Digitalmars-d digitalmars-d at puremagic.com
Sun Jan 10 18:54:43 PST 2016


On 11 January 2016 at 11:59, Walter Bright via Digitalmars-d
<digitalmars-d at puremagic.com> wrote:
> On 1/10/2016 5:20 PM, Manu via Digitalmars-d wrote:
>>
>> This design doesn't give us anything, and you seem to be resisting
>> making an argument for its existence. We don't need to do this, we
>> don't need to waste any more time.
>
>
> I appreciate that, but without knowing exactly what your issue is, I can't
> draw any sort of conclusion.

I can't say without spending a whole bunch of time trying to work it
out. What I can consistently show is that when I substitute
'extern(C++, ns)' for 'extern(C++)', all problems vanish (subsequent
link errors aside).
It would seem that name resolution is more complex than normal, and it
gets complicated or breaks in edge cases. Then I need to spend time
trying to understand how it is that my case is complex, and trying to
workaround it (or produce sufficient examples).
But the whole dance is pointless. If we could just recognise that the
ns scope only increases complexity, there's no good reason for it, and
there's no opt out.
Just let the symbols be exactly where they're declared like any
regular D code, and if you really want this namespace scoping feature,
can we take that as a separate enhancement request and discuss/design
it? I'd suggest it should be opt-in, since I can't imagine a case
where I would ever want that behaviour.


More information about the Digitalmars-d mailing list