On Tue, 29 Apr 2014 11:47:28 -0400, Timon Gehr <timon.g...@gmx.ch> wrote:

On 04/29/2014 02:01 PM, Steven Schveighoffer wrote:
That is what the DIP says:

"Declarations in the namespace can be accessed without qualification in
the enclosing scope if there is no ambiguity. Ambiguity issues can be
resolved by adding the namespace qualifier"

Which then  proceeds to show that only the namespace qualifier is needed
to disambiguate the symbol.

-Steve

You seem to be missing the only important statement that the DIP makes about symbol disambiguation, that follows straight after those examples:

"Name lookup rules are the same as for mixin templates."

(Maybe it should say 'named template mixins'.)

I am not familiar with the rules.

Perhaps you can just outline for me:

module bar;

extern(C++, foo) void func();

module prog;

import bar;

void main()
{
   foo.func(); // works?
}

If this works, then we have a problem. If it doesn't work, well, then I see nobody using this feature (using C++ namespace for disambiguation, not the mangling, which is still useful).

-Steve

Reply via email to