Classes and @disable this()
Steven Schveighoffer via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Feb 9 10:29:22 PST 2015
On 2/8/15 2:57 PM, Jonathan M Davis via Digitalmars-d-learn wrote:
> On Sunday, February 08, 2015 17:51:09 bearophile via Digitalmars-d-learn wrote:
>> fra:
>>
>>> However making it a compiler error would be far, far better
>>
>> I think this can be filed in Bugzilla as diagnostic enhancement:
>>
>>
>> class Foo {
>> @disable this();
>> this(int i) {}
>> }
>> void main() {}
>
> The compiler should probably just give you an error telling you that
> disabling the default constructor on classes is illegal. And since no
> default constructor is automatically declared if you declare another
> constructor, there isn't even any point in disabling the default constructor
> (which is probably why no one has been complaining about this). @disable
> this() only makes sense on structs.
Why? I think it's perfectly acceptable.
What should be illegal is if you extend Foo and don't @disable this on
the derivative.
-Steve
More information about the Digitalmars-d-learn
mailing list