On Sunday, 15 January 2017 at 15:42:19 UTC, Dsby wrote:
On Saturday, 14 January 2017 at 17:35:09 UTC, Nordlöw wrote:
On Friday, 13 January 2017 at 16:50:37 UTC, Dsby wrote:
I write the ref count pointer and the scoped point in D.
How do two of these differ from
- https://dlang.org/phobos/std_typecons.html#.RefCounted
- https://dlang.org/phobos/std_typecons.html#.Unique
under
https://dlang.org/phobos/std_typecons.html
?
The RefCount not support class or inteface, and the ref count
is not atomic , it not thread safe.
The Unique is base of GC. It can not @nogc. And it use the
'delete' keyword , it will be
deprcated(http://dlang.org/deprecate.html).
The SmartRef is Base std.experimental.allocator. You can
control where the memony allocator.
And the smartref.sharedref use the atomic default, you alse can
not use atomic。 And have the smartref.weakref with sharedref to
fix circular reference.
Sorry,In the new phobos, THe Unique is not used the 'delete'
keyword.
But , it only destroy, not free the memony.
and : In
https://github.com/dlang/phobos/blob/master/std/typecons.d#L147
~this()
{
debug(Unique) writeln("Unique destructor of ", (_p is
null)? null: _p);
if (_p !is null) destroy(_p);
_p = null;
}
if the 'T' is a struct, it will not exec the Destory function.
Is it a bug?