~= call copy ctor?
Ali Çehreli
acehreli at yahoo.com
Sun Jul 22 11:15:51 PDT 2012
On 07/22/2012 09:35 AM, Namespace wrote:
> A other question:
> How can i check if t is valid, after i call "clear"?
After the destructor is run, the object itself is put into a strange
state. I amnot really sure about the actual details but I think the
virtual function table is cleared (or perhaps just the destructor's
entry?) so that the destructor is not going to be run again by the GC later.
Regarding the references to it, like 't' below, clear() cannot know
about all of the references to the object. It could null the reference
that is passed to it but apparently it doesn't do that maybe because
null'ing one reference out of many wouldn't buy much.
Of course it is always possible to set it to null explicitly after
calling clear():
clear(t);
t = null;
Because now we know that we shouldn't be using the local reference.
Ali
More information about the Digitalmars-d-learn
mailing list