I'm just experiement with D, that's all. ;) Most of my questions here are just out of curiosity.
I have now this construct: [code] class smart_ptr { private: A* _ptr; public: this(A* ptr) { void* buffer = GC.malloc(A.sizeof); memcpy(buffer, ptr, A.sizeof); this._ptr = cast(A*) buffer; } ~this() { GC.free(this._ptr); } @property A* Ptr() { return this._ptr; } alias Ptr this; } [/code] And that is how i use it (ATM): [code] A a = new A(42); smart_ptr sptr = new smart_ptr(&a); sptr.echo(); a = null; sptr.echo(); [/code] But how can i free the memory? Bizarrely it cannot be delete in the dtor. o.O Strange design.