On Wednesday, 23 May 2018 at 03:44:36 UTC, Manu wrote:
Okay, I'm still really angry about the stupid stupid decision to make C++ namespaces into scopes rather than just a detail used for mangling, with absolutely no consultation of the community, in particular the target audience, who are unanimously annoyed as far as I can tell...

I'm unsatisfied by the work-arounds to make the situation not-suck, but I think I have an idea that would pacify me...

If we can use `alias this` to mirror an entire C++ namespace into the location we want (ie, the scope immediately outside the C++ namespace!!), then one sanitary line would make the problem quite more tolerable:

extern(C++, FuckOff)
{
  void bah();
  void humbug();
}
alias this FuckOff; // <-- symbols are now aliased where they should
have been all along



(count the seconds until the reply that says to use reflection to scan the scope, and use a mixin to... blah blah)

After thinking about it for a few minutes I do believe this is a reasonable approach.
I am in favor of module-level alias this.

The reason name-spaces create a scope is because they are essentially implemented via structs.

Reply via email to