On Sunday, 29 July 2018 at 11:03:43 UTC, Jonathan M Davis wrote:
I guess that the argument at that point is that you would have
to put them in separate D modules, just like you would if they
were extern(D) functions.
Yep, that'd sound acceptable to me, implying that
```
extern(C++, cppns) { void foo(); }
void foo();
```
wouldn't work anymore, and particularly, this neither:
```
extern(C++, cppns)
{
extern(C++, nested) { void foo(); }
void foo();
}
```
so that a straight C++ namespace => D module hierarchy mapping
would probably be required in the general case:
```
// cppns/package.d
module cppns;
extern(C++, cppns) { void foo(); }
// cppns/nested/package.d
module cppns.nested;
extern(C++, cppns) extern(C++, nested) { void foo(); }
```