virtual-by-default rant

deadalnix deadalnix at gmail.com
Sun Mar 18 06:39:34 PDT 2012


Le 18/03/2012 02:23, Manu a écrit :
> The virtual model broken. I've complained about it lots, and people
> always say "stfu, use 'final:' at the top of your class".
>
> That sounds tolerable in theory, except there's no 'virtual' keyword to
> keep the virtual-ness of those 1-2 virtual functions I have... so it's
> no good (unless I rearrange my class, breaking the logical grouping of
> stuff in it).
> So I try that, and when I do, it complains: "Error: variable
> demu.memmap.MemMap.machine final cannot be applied to variable",
> allegedly a D1 remnant.
> So what do I do? Another workaround? Tag everything as final individually?
>
> My minimum recommendation: D needs an explicit 'virtual' keyword, and to
> fix that D1 bug, so putting final: at the top of your class works, and
> everything from there works as it should.

This problem isn't virtual by default at all. It would just flip the 
problem around.

It just show the need of keyword to express the opposite of final, 
virtual. The same problem occur with const immutable, you cannot go back 
to the mutable world when you use « const: » for example.


More information about the Digitalmars-d mailing list