Final by default?

John Colvin john.loughran.colvin at gmail.com
Fri Mar 14 08:24:42 PDT 2014


On Friday, 14 March 2014 at 15:17:08 UTC, Andrei Alexandrescu 
wrote:
> On 3/14/14, 4:37 AM, Daniel Murphy wrote:
>> "Walter Bright"  wrote in message 
>> news:lfu74a$8cr$1 at digitalmars.com...
>>
>>> > No, it doesn't, because it is not usable if C introduces 
>>> > any virtual
>>> > methods.
>>>
>>> That's what the !final storage class is for.
>>
>> My mistake, I forgot you'd said you were in favor of this.  
>> Being able
>> to 'escape' final certainly gets us most of the way there.
>>
>> !final is really rather hideous though.
>
> A few possibilities discussed around here:
>
> !final
> ~final
> final(false)
> @disable final
>
> I've had an epiphany literally a few seconds ago that 
> "final(false)" has the advantage of being generalizable to 
> "final(bool)" taking any CTFE-able Boolean.
>
> On occasion I needed a computed qualifier (I think there's code 
> in Phobos like that) and the only way I could do it was through 
> ugly code duplication or odd mixin-generated code. Allowing 
> computed qualifiers/attributes would be a very elegant and 
> general approach, and plays beautifully into the strength of D 
> and our current investment in Boolean compile-time predicates.
>
>
> Andrei

Great idea.


More information about the Digitalmars-d mailing list