On 11 January 2016 at 11:59, Walter Bright via Digitalmars-d <digitalmars-d@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.