On Monday, 8 April 2013 at 08:21:06 UTC, Manu wrote:
The C++ state hasn't changed though. We still avoid virtual
calls like the
plague.
One of my biggest design gripes with D, hands down, is that
functions are
virtual by default. I believe this is a critical mistake, and
the biggest
one in the language by far.
My understanding of this is that while all of your class
functions will be virtual by default, the compiler will reduce
them to non-virtual unless you actually override them, and to
override by mistake is difficult because you have to specify the
"override" keyword to avoid a compiler error.
I'd like to see that understanding confirmed as it was only
implied in here:
http://dlang.org/overview.html
For extra safety you have to specify "final" which would be a
pain if that's what you want by default, but I'm not so sure it's
really necessary if the compiler really does optimize virtual
functions away.
BTW, the red code/green code concept sounds like the most
promising route towards a generalized solution. I'll try and find
the time to watch it as well.
--rt