delete and references?
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Sat Aug 8 09:42:28 PDT 2009
Jarrett Billingsley wrote:
> On Sat, Aug 8, 2009 at 9:42 AM, Andrei
> Alexandrescu<SeeWebsiteForEmail at erdani.org> wrote:
>> Jarrett Billingsley wrote:
>>> On Sat, Aug 8, 2009 at 9:17 AM, Andrei
>>> Alexandrescu<SeeWebsiteForEmail at erdani.org> 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?
Yes. I've internalized this so deeply, I won't even debate it.
>>> 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 believe it is.
> 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.
We do have blunt tools for blunt uses: malloc and free. We don't need
more of those.
Andrei
More information about the Digitalmars-d
mailing list