Do constructors in D support the privacy keyword?
Gary Willoughby
dev at nomad.so
Sat Sep 7 12:04:56 PDT 2013
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.
More information about the Digitalmars-d-learn
mailing list