Is there any good reason why C++ namespaces are "closed" in D?

Walter Bright newshound2 at digitalmars.com
Sun Jul 29 08:28:08 UTC 2018


On 7/29/2018 1:15 AM, Manu wrote:
> All we're asking for is that C++ namespaces do **nothing** except affect the 
> mangling.

If I do that, the next bug report will be:

   extern (C++, "ab") { void foo(); }
   extern (C++, "cd") { void foo(); } // Error, foo() is already declared

   foo(); // which one gets called?

The reason namespaces were added to C++ is to not have such name collisions. 
Namespaces in C++ introduce a scope. D cannot interoperate with this without 
introducing a scope as well.


More information about the Digitalmars-d mailing list