On Tuesday, 27 June 2017 at 23:42:38 UTC, Guillaume Piolat wrote:
On Tuesday, 27 June 2017 at 18:04:36 UTC, Moritz Maxeiner wrote:
Well, technically speaking the `~this` for D classes *is* a
finalizer that you may optionally manually call (e.g. via
destroy).
It would be nice, though, to change class `~this` into a
destructor and move the finalization into an extra method like
`finalize`. Write a DIP?
The only sane way out is to prevent the GC from calling
constructors.
Do you mean destructors?
If so, that's what I meant with the "technically". If the may GC
call it (automatically), it's a finalizer, not a destructor (in
the usual sense, anyway).
- Replace calls by the GC to `~this` with calls to `finalize` (or
invent some cool other shortened name for the latter)
- Reserve `~this` for being called by deterministic lifetime
management (std.experimental.allocator.dispose, object.destroy,
RefCounted, Unique, etc.)