digitalmars.D.learn - Deleting an object
- Maik Klein (20/20) Jan 18 2016 I have also asked this question here
- Rikki Cattermole (3/21) Jan 18 2016 Correct, in native land you can't null all the pointers.
I have also asked this question here https://stackoverflow.com/questions/34838742/weak-references-or-pointers But I try to word it differently. I have a game with GameObjects, a system manages those GameObjects. GameObjects can hold a pointer/reference to each other. But at one point a GameObject dies and when it does it shouldn't be able to be accessed by other GameObjects nor should it be kept alive in memory. How do I express this in D? I have also looked at core.memory.GC auto foo = new Foo!int(); auto foo2 = foo; GC.free(foo); if(foo != null) writeln(*foo); if(foo2 != null) writeln(*foo2); But it seems that `GC.free` behaves like C++'s `delete` and doesn't actually null all the pointers.
Jan 18 2016
On 19/01/16 2:47 AM, Maik Klein wrote:I have also asked this question here https://stackoverflow.com/questions/34838742/weak-references-or-pointers But I try to word it differently. I have a game with GameObjects, a system manages those GameObjects. GameObjects can hold a pointer/reference to each other. But at one point a GameObject dies and when it does it shouldn't be able to be accessed by other GameObjects nor should it be kept alive in memory. How do I express this in D? I have also looked at core.memory.GC auto foo = new Foo!int(); auto foo2 = foo; GC.free(foo); if(foo != null) writeln(*foo); if(foo2 != null) writeln(*foo2); But it seems that `GC.free` behaves like C++'s `delete` and doesn't actually null all the pointers.Correct, in native land you can't null all the pointers. They are just integers after all.
Jan 18 2016