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