<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 14 March 2014 16:20, Walter Bright <span dir="ltr"><<a href="mailto:newshound2@digitalmars.com" target="_blank">newshound2@digitalmars.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On 3/13/2014 8:40 PM, Daniel Murphy wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
"Walter Bright"  wrote in message news:lft8ok$2epl$1@<u></u>digitalmars.com...<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Also,<br>
<br>
     class C { final: ... }<br>
<br>
achieves final-by-default and it breaks nothing.<br>
</blockquote>
<br>
No, it doesn't, because it is not usable if C introduces any virtual methods.<br>
</blockquote>
<br></div>
That's what the !final storage class is for.<br></blockquote><div><br></div><div>Please don't consider !final, that's like pouring lemon juice on the would. Use virtual, it's a keyword that everybody knows and expects, and already exists in peoples code that they might be migrating to D.</div>
</div></div></div>