Disable GC entirely

Minas Mina minas_mina1990 at hotmail.co.uk
Wed Apr 10 09:29:51 PDT 2013


On Wednesday, 10 April 2013 at 15:38:49 UTC, Andrei Alexandrescu
wrote:
> On 4/10/13 7:30 AM, Manu wrote:
>> The _problem_ is that functions are virtual by
>> default. It's a trivial problem to solve, however it's a major 
>> breaking
>> change, so it will never happen.
>
> I agree. We may as well save our breath on this one.
>
>> Hence my passing comment that spawned this whole thread, I see 
>> it as the
>> single biggest critical mistake in D, and I'm certain it will 
>> never be
>> changed. I've made my peace, however disappointing it is to me.
>
> I disagree with the importance assessment, but am soothed by 
> your being at peace.
>
>
> Andrei


Why is virtual by default a problem?

You could have non-virtual by default and would live happily
until a day where you forget to declare the base class destructor
virtual. Then you spent a lot of time trying to find why you are
leaking memory.

In C++ you have to be aware all the time not to forget something
and screw everything. D is more forgiving, at a small cost of
performance.

So I don't buy the non-virtual by default argument. If your
profiler tells you that a particular virtual function is the
bottleneck, go on and make it final. That's why profilers exist.


More information about the Digitalmars-d mailing list