On 01-11-2012 22:21, Dan wrote:
TDPL states ------ However, unlike in C++, clear does not dispose of the object’s own memory and there is no delete operator. (D used to have a delete operator, but it was deprecated.) You still can free memory manually if you really, really know what you’re doing by calling the function GC.free() found in the module core.memory. ------ The language spec has this example from the section on Struct Postblits: ------ struct S { int[] a; // array is privately owned by this instance this(this) { a = a.dup; } ~this() { delete a; } } ------Is the delete call, then per TDPL not necessary? Is it harmful or harmless? Also, are there any guidelines for using and interpreting the output of valgrind on a D executable? Thanks Dan
The docs are supposed to not use delete. In this particular case, you'd use core.memory.GC.free(a.ptr); instead.
-- Alex Rønne Petersen [email protected] http://lycus.org
