On 02/27/2012 03:42 PM, Martin Nowak wrote:
...
https://gist.github.com/1920202
Neat. Possible improvement (if I understand your code correctly):
Don't add the GC range if all possible aliasing is through Ptr.
I hope I did that.
import smart_ptr;
struct S{
Ptr!int a;
Ptr!double b;
}
static assert(hasAliasing!S);
Therefore, I think your code will add the storage of Ptr!S to the GC,
even though it manages all its pointers manually.
Or do you mean when holding a class. I think it's needed
for classes because of the monitor, not sure though.
Is it needed for unshared class instances?