Why will the delete keyword be removed?

Ali Çehreli acehreli at yahoo.com
Wed Jul 14 15:31:25 PDT 2010


Andrei Alexandrescu wrote:

 >> Also, what about classes which don't have a default constructor?
 >
 > All classes have a state where all members are default initialized.

Should that state deserve a default destructor?

 > I'm not adding anything. I am removing a mistake that C++ made (i.e.
 > conflating destruction with deallocation)

That makes perfect sense to me. One thing that is troubling is the fact 
that the destructor runs twice. Is that not important?

Could double destructor call be avoided if the object received a 
'default destructor' upon clear(), which is not what the programmer 
wrote? The reason is, the programmer's destructor has already been 
executed when clear() is called anyway. If the system puts the object 
into the .init state, shouldn't it also decide what 'default destructor' 
could safely be run? Perhaps empty for a class consisting merely of 
fundamental types...

Also, how about un-branding the object upon clear()? Would that solve 
the double destructor call?

Ali


More information about the Digitalmars-d mailing list