On Monday, 20 April 2015 at 22:24:53 UTC, Ali Çehreli wrote:
On 04/20/2015 02:48 PM, Freddy wrote:
On Monday, 20 April 2015 at 02:56:35 UTC, Ali Çehreli wrote:
Not automatically. Check out addRange and addRoot:

 http://dlang.org/phobos/core_memory.html

Ali
The destructor doesn't seem to be running

Sorry, I misunderstood you. You can use a RAII object as ketmar said:

import std.stdio;
import std.c.stdlib;

struct Test{
    void* ptr;

    ~this(){
        writeln("free: ",&this);
        free(ptr);
    }
}

void main(){
    auto ptr=cast(Test*)malloc(4);
    writeln("create: ",ptr);

auto test = Test(ptr); // <-- The dtor of this object will free
}

Ali
I believe your original understanding was right.I want to have HiddenType* be garbage collected and finalized(freed,destructed) when no more references to it are found(stack or heap). I could use reference counting but it seems inefficient for a program rarely collecting and constantly coping.

Reply via email to