On Sat, Aug 8, 2009 at 9:42 AM, Andrei Alexandrescu<[email protected]> wrote: > Jarrett Billingsley wrote: >> >> On Sat, Aug 8, 2009 at 9:17 AM, Andrei >> Alexandrescu<[email protected]> wrote: >>> >>> FWIW, I am trying to convince Walter to not reclaim memory in delete, but >>> instead only call destructors. D continues C++'s mistake of conflating >>> lifetime termination with memory reclamation. >> >> Why? Instead of dangling pointers, you'd end up with pointers to >> finalized objects, which would probably lead to harder-to-catch bugs >> (since then you wouldn't even get a segfault). > > Getting a segfault == lucky
And the alternative - using a "dead" object - is any better? >> And what if you used it to try to delete a temporary array? Yes, you >> could use malloc/free for the temp array, but.. it just seems silly to >> have to dip into C functions to do that. > > Why? It's not a frequent need. That's enough of a justification to change delete's behavior? I just don't know why it should be changed. It's a blunt tool for blunt uses. When you delete something, you're telling the GC "I don't need this anymore, *trust me*", so *not* freeing memory associated with it seems silly.
