My issue is you're presenting solutions. But I have no idea what the problem is,
because every time I present a solution to the examples you give, you say it's
no good, because your problem is something else.
I cannot reverse engineer what the issue is from your proposed solution.
My second point is that changing the language is a last resort solution, not a
first resort.
Thirdly, C and C++ are loaded to the gills with
seemed-like-a-good-idea-at-the-time solutions that turned out to have bad
unintended consequences that bork up the language for everyone down the line. D
has some of those, too.
Forgive me, but:
extern (C++, "ns")
has a definite smell about it of something going awry, and the idea that it
shouldn't introduce a scope because nobody relies on C++ namespaces being in a
scope despite that being the whole point of namespaces is a giant red flag of
something terribly wrong somewhere.