On Saturday, 7 September 2013 at 18:49:43 UTC, H. S. Teoh wrote:
On Sat, Sep 07, 2013 at 08:37:05PM +0200, Gary Willoughby wrote:
Do constructors in D support a privacy keyword? I'm guessing not
because if i declare one like this:

class T
{
    private this()
    {
    }
}

i can still instantiate the class like this:

auto x = new T();

and there is no error thrown. Am i right in thinking the privacy
keyword is ignored?

Did you put the 'new' line in the same file as class T? In D, 'private' means 'private to this module', not 'private to this class' as in C++. So 'new T()' should be compilable inside the same module, but not
outside. If it still compiles outside, I'd say file a bug.


T

It was inside the same module. I didn't realise that about private. Thanks for the clarification.

Reply via email to