On Monday, 2 March 2015 at 22:58:19 UTC, Walter Bright wrote:
His insight was that the deletion of the payload occurred
before the end of the lifetime of the RC object, and that this
was the source of the problem. If the deletion of the payload
occurs during the destructor call, rather than the postblit,
then although the ref count of the payload goes to zero, it
doesn't actually get deleted.
I.e. the postblit manipulates the ref count, but does NOT do
payload deletions. The destructor checks the ref count, if it
is zero, THEN it does the payload deletion.
I guess you also mean opAssigns -- they would manipulate
refcounts too right? In fact, they would be the primary means of
decrementing the refcount *apart* from the destructor, right?