Destructor nonsense on dlang.org

Tove tove at fransson.se
Thu May 24 11:46:42 PDT 2012


On Thursday, 24 May 2012 at 17:57:11 UTC, Steven Schveighoffer 
wrote:
> On Thu, 24 May 2012 13:47:31 -0400, Tove <tove at fransson.se> 
> wrote:
>
> There's a big problem with this though.  Your destructor *has 
> no idea* whether it's being called from within a collection 
> cycle, or from clear.  You must assume the most restrictive 
> environment, i.e. that the dtor is being called from the GC.
>
> This is even true with struct dtors!
>
> -Steve

If there is a clear location where a manual close() function can 
be called... then there are many safe solutions to automatically 
and safely call clear instead.

std.typecons.Unique

If you are a library creator, you could even use a factory to 
enforce wrapping in Unique...  But I don't see any point of 
adding a non standard destructor function name, there are 
numerous ways to facilitate RAII.



More information about the Digitalmars-d mailing list