Specifying C++ symbols in C++ namespaces

Dicebot public at dicebot.lv
Fri Apr 4 15:12:04 PDT 2014


On Friday, 4 April 2014 at 19:43:56 UTC, Walter Bright wrote:
> Fails because:
>
> C++:
>
>     namespace S { namespace T {
>         int foo();
>         namespace U {
>             int foo();
>         }
>      } }
>
> D:
>
>   extern (C++, S::T) {
>       int foo();
>       extern (C++, U) {
>         int foo();
>       }
>   }
>   foo();  // error, ambiguous, which one?
>   S.T.foo(); // S undefined

I don't feel this is a problem. Such foo's should be disambugated 
by D tools, which means using different modules. Exact matching 
between C++ and D sources is impossible anyway, it is not worth 
complicating D qualification system for that.


More information about the Digitalmars-d mailing list