On Saturday, 7 March 2015 at 23:48:39 UTC, Timothee Cour wrote:
I'm a little confused about the following:
clear,delete,destroy.
My understanding is that clear is deprecated and delete is
planned to be
deprecated, so we should only ever use destroy (which
deterministic calls
the destructor but doesn't release memory).
Unique uses delete however in the destructor. Is that still
guaranteeing
deterministic destruction when the uniqued element is either a
class or
struct? (ie if the destructor has a file handle resource, will
it be
deterministically freed?)
structs are allocated on the stack(unless instantiated with new),
and call their destructor when you leave their scope. Unique
still guarantees deterministic destruction because it's wrapped
around a struct, it's a fairly common 'D idiom' I'd say(i.e, look
at how File is implemented - D's runtime and standard library are
surprisingly well documented and easy to read.)
I'm not sure why Unique uses delete, might just be bitrot.