On 2010-02-14 17:21:51 -0500, Andrei Alexandrescu <seewebsiteforem...@erdani.org> said:

Michel Fortin wrote:
On 2010-02-14 15:41:30 -0500, Andrei Alexandrescu <seewebsiteforem...@erdani.org> said:

Michel Fortin wrote:

Hum, what's the syntax for placement delete?

There is no need for placement delete. There will be a function clear() in object.d that only calls the destructor. (That is needed regardless.) You can carry deallocation with your own API functions.

What's the point in wasting a function name only to call the destructor? Why not just allow "object.~this()"?

You might want to clear an int etc. for which it's unclear whether the above should work.

Also, if you really want to put an object back in it's initial state, you could call both the destructor and the constructor. Anything else is going to break the object's invariant. I think it's best to leave breaking the object's invariants to a special syntax, hence "object.~this()".

Yah, clear destroys and then fills with .init.

...and call the default constructor for classes (and is not callable if there is no default constructor). If you don't call a constructor for a class, invariants can't hold.

Ok. That's fine for clear() then, but it's not the same thing as just calling the destructor. There should be a way to just call the destructor prior deallocation.


--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to