On 3/13/14, 11:30 PM, Manu wrote:
On 14 March 2014 16:20, Walter Bright <newshou...@digitalmars.com
<mailto:newshou...@digitalmars.com>> wrote:
On 3/13/2014 8:40 PM, Daniel Murphy wrote:
"Walter Bright" wrote in message
news:lft8ok$2epl$1@__digitalmars.com...
Also,
class C { final: ... }
achieves final-by-default and it breaks nothing.
No, it doesn't, because it is not usable if C introduces any
virtual methods.
That's what the !final storage class is for.
Please don't consider !final, that's like pouring lemon juice on the
would.
The "wound" should have nothing to do with the decision. It would be a
mistake to add a keyword here because "well, we had to give them something".
The converse of final doesn't deserve its own keyword. Also we do need a
means to negate others, too.
Use virtual, it's a keyword that everybody knows and expects, and
already exists in peoples code that they might be migrating to D.
That does apply to C++ and maybe C# but not to other languages.
Andrei