SmartRef: The Smart Pointer In D

Dsby via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Jan 15 07:56:30 PST 2017


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?


More information about the Digitalmars-d-announce mailing list