On Wed, 30 Apr 2014 21:51:38 -0400, Andrei Alexandrescu
<[email protected]> wrote:
On 4/30/14, 6:04 PM, Steven Schveighoffer wrote:
destructors are for cleaning up non-GC resources. File handles, malloc'd
memory, etc. I don't see why these need to be eliminated.
Virtually all GCs are known to be horrible at managing scarce resources
(including memory itself).
The destructor can be a crutch, but it's not good to leave open resources
when the user of your code has not cleaned them up manually.
I can see no reason to disallow destruction from cleaning up resources
that nobody else has managed to clean up.
The largest problem with D destructors comes from trying to clean up D
objects in destructors of structs, that you never expected to be done via
the GC.
Cleaning up files and malloc'd memory is not an issue.
-Steve