On Wednesday, 19 August 2015 at 18:41:07 UTC, Walter Bright wrote:
On 8/19/2015 11:03 AM, Jacob Carlborg wrote:
Not sure how the compilers behave in this case but what about
devirtualization?
Since I think most developers compile their D programs with
all files at once
there should be pretty good opportunities to do
devirtualization.
It's true that if generating an exe, the compiler can mark leaf
classes as final and get devirtualization. (Of course, you can
manually add 'final' to classes.)
It's one way D can generate faster code than C++.
C++ also has final and if I am not mistaken both LLVM and Visual
C++ do devirtualization, not sure about other compilers.