<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On 4 December 2013 17:24, Kapps <span dir="ltr"><<a href="mailto:opantm2+spam@gmail.com" target="_blank">opantm2+spam@gmail.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="im">On Wednesday, 4 December 2013 at 07:00:58 UTC, Manu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There is a proposed transition process across a few releases which should<br></blockquote></div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

make the transition relatively painless, at least, it wouldn't be error<br>
prone, since warnings/deprecation messages would assist the process.<br>
1. 'virtual' keyword is introduced, 'override'-ing unattributed methods is<br>
a warning.<br>
2. it becomes deprecated, but you can still compile with -d.<br>
3. it becomes an error, but surely you've already taken the opportunity to<br>
update your software, right?<br>
</blockquote>
<br></div>
This transition also works well. It does mean that the performance benefits would not occur until step 3, but while giving time to transition it also immediately provides the safety benefits. Ideally it would even catch bugs in peoples code as they make the required changes to add virtual where needed. The only issue is that it pretty much guarantees that most libraries that make use of classes and are no longer maintained will fail to compile, but honestly, I don't know think many projects will compile anyways when using a compiler / Phobos version that's more than a year newer than when the library was last modified.<br>
</blockquote><div><br></div><div>Indeed. I think it's very safe to say that any un-maintained code already won't compile. This isn't the first, or even the greatest in magnitude breaking change that there's been recently.<br>
</div></div></div></div>