On Tuesday, April 30, 2013 20:59:17 Dicebot wrote: > On Tuesday, 30 April 2013 at 18:54:45 UTC, Luís Marques wrote: > > On Monday, 29 April 2013 at 21:58:46 UTC, Jonathan M Davis > > > > wrote: > >> zeroes out the vtbl > > > > Hmm, I was expecting that DMD, at least in -release mode, > > optimize foo() to a direct call, since there's no inheritance. > > It was discussed a lot of times in this newsgroup, you can google > it quite easily. To sum up: it really can't, unless it is marked > as final.
It pretty much comes down to the fact that the compiler can't possibly know that there's no inheritance, because it doesn't have the whole list of classes in the program and _can't_ have the whole list of classes (especially once shared libraries enter the mix). - Jonathan M Davis
