On Tuesday, 4 June 2013 at 08:23:52 UTC, Walter Bright wrote:
You should also mangle the name so that it doesn't
pollute the unqualified symbol namespace (either that or fix visibility of
private symbols).

If it proves useful, it will be moved into some more proper and public place.

I think it's a bad idea to 'mangle' the name. First off, if it is private, it is not visible. And even being public, the anti-hijacking language features make it a non-problem. The whole point is to avoid the wretched C problems with a global name space, by not having a global name space.

import std.compress;
import mylib.circularbuffer;

CircularBuffer!(ubyte[1024]) buf;

ERROR: conflicting names, even though std.compress.CircularBuffer is private! I have to fully qualify CircularBuffer, or use alias to get around the problem.

D may not have a global namespace, but it does have unqualified name lookup, and private symbols still pollute that pseudo-namespace.

Reply via email to