On Friday, 2 May 2014 at 15:06:59 UTC, Andrei Alexandrescu wrote:
On 5/2/14, 3:09 AM, "Marc Schütz" <schue...@gmx.net>" wrote:
On Thursday, 1 May 2014 at 22:23:46 UTC, H. S. Teoh via
Digitalmars-d
wrote:
On Thu, May 01, 2014 at 03:10:04PM -0700, Walter Bright via
Digitalmars-d wrote:
The thing is, GC is a terrible and unreliable method of
managing
non-memory resource lifetimes. Destructors for GC objects
are not
guaranteed to ever run. If you do have struct with a
destructor as a
field in a class, you've got, at minimum, suspicious code
and a latent
bug.
Exactly!!! This is why I said we should ban the use of
structs with
dtors as a field in a class.
No, not in a class, but in any GC-managed object. It's
unfortunate that
class currently implies GC.
So now it looks like dynamic arrays also can't contain structs
with destructors :o). -- Andrei
Well, that would be the logical consequence...
But my main point was actually this:
Don't disallow destructors on classes just because they are
classes, but disallow them when they are not guaranteed to be
called (or calling them is troublesome because of
multi-threading), i.e. GC.