<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 3 December 2013 13:14, Andrei Alexandrescu <span dir="ltr"><<a href="mailto:SeeWebsiteForEmail@erdani.org" target="_blank">SeeWebsiteForEmail@erdani.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 12/2/13 5:30 PM, Manu wrote:<br>
</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
On 3 December 2013 08:43, Andrei Alexandrescu<br></div>
<<a href="mailto:SeeWebsiteForEmail@erdani.org" target="_blank">SeeWebsiteForEmail@erdani.org</a> <mailto:<a href="mailto:SeeWebsiteForEmail@erdani.org" target="_blank">SeeWebsiteForEmail@<u></u>erdani.org</a>>><div class="im">
<br>
wrote:<br>
<br>
    On 12/2/13 4:19 AM, Manu wrote:<br>
<br>
        The problem is that virtual is irrevocable. It can't be removed<br>
        without<br>
        breaking the API<br>
<br>
<br>
    Here we go again. No, that's not the problem. A similar issue goes<br>
    about final.<br>
<br>
<br></div><div class="im">
You can safely add virtual to a function where it wasn't previously<br>
present without breaking code.<br>
</div></blockquote>
<br>
If not breaking code is something of value to you, you should appreciate that final-by-default would break a bunch of code.</blockquote><div><br></div><div>Only once upon changing the default, and with the opportunity for a controlled deprecation path which clearly communicates with users. Otherwise this remains an ongoing issue forever.</div>
</div></div></div>