DIP61: Add namespaces to D
Dicebot via Digitalmars-d
digitalmars-d at puremagic.com
Sun Apr 27 06:17:00 PDT 2014
On Sunday, 27 April 2014 at 08:16:58 UTC, Andrej Mitrovic via
Digitalmars-d wrote:
> On 4/27/14, Dicebot via Digitalmars-d
> <digitalmars-d at puremagic.com> wrote:
>> Using named mixin templates for pure scope resolution is side
>> effect and should be discouraged in any reasonable code.
>
> There's also the un-instantiable class trick:
>
> -----
> final abstract class Scope
> {
> static:
> }
> -----
>
> A struct-based version is also possible. It's used in Phobos
> and other
> libraries. There's a need for scoping symbols other than in
> modules,
> but I'm not a fan of pushing C++ features in D. Not unless we
> have a
> really solid DIP.
I believe this is a temporary workaround. Once bugs and
deficiencies of existing module system will be taken care of,
there won't be any need in using namespace emulation.
> Idealism aside, modules have some implementation issues right
> now
> which force people to use workarounds like named mixins or the
> above
> trick, e.g. package access not being propagated up/down a
> hierarchy.
This pops up very often so I have just went and implemented proof
of concept for package(pkg1.pkg2.pkg3) protection attribute
syntax. Was relatively straightforward, will do a PR soon-ish
after some cleanup.
More information about the Digitalmars-d
mailing list