On Wednesday, 5 November 2014 at 19:05:32 UTC, Patrick Jeeves
wrote:
On Wednesday, 5 November 2014 at 18:56:08 UTC, luminousone
wrote:
unless delete is explicitly called, I don't believe the
destructor would ever be called, it would still have a
reference in the static foo_list object that would stop it
from being collected by the gc.
This is exactly why I asked about it, and even if delete is
explicitly called-- which i believe is deprecated, wouldn't the
runtime fill the space with the default construtor until the GC
decides to remove it? meaning it would be immediatly added back
into the list?
I don't believe that the default constructor is called. I am
pretty sure delete immediately deallocates the object,
deregistering its memory from the gc.
In fact I am 99% sure no constructor is called after delete, it
would cause problems for objects with no default constructor, or
for system related stuff done in constructors, and I haven't seen
anything like that in my X11 work in d.