Do non-member functions improve encapsulation in D?
Nick Treleaven via Digitalmars-d
digitalmars-d at puremagic.com
Thu Apr 24 05:30:53 PDT 2014
On 21/04/2014 09:49, Lars T. Kyllingstad wrote:
> I often wish "private" meant class private in D. I know, the usual
> argument against this is that someone who writes a module usually has
> full control of that module, but again, Phobos is an example of the
> contrary. Each module has at least a dozen authors, even if they aren't
> all listed in the documentation.
I think this is a good argument. True private aids developers when
refactoring. Also synchronized classes always have true private members,
so it would be better if D could express it instead of changing the
meaning of 'private' for them.
> I also know it's never going to happen due to the amount of code
> breakage it would cause. But maybe we could extend the syntax a bit?
> E.g. "private(class)" or "class private"?
Perhaps the following would work:
* Add 'module' as synonym for 'private'
* Add '@private' for true private access
* Deprecate 'private' after some years
I doubt this would be popular due to churn, but I would support it.
More information about the Digitalmars-d
mailing list