[phobos] Unique

Martin Nowak dawg at dawgfoto.de
Fri Feb 10 16:37:47 PST 2012


On Fri, 10 Feb 2012 21:18:46 +0100, Andrei Alexandrescu  
<andrei at erdani.com> wrote:

> On 2/10/12 11:42 AM, Martin Nowak wrote:
>> On Fri, 10 Feb 2012 16:35:18 +0100, kenji hara <k.hara.pg at gmail.com>  
>> wrote:
>>
>>> I think std.typecons.Unique should place the object ownership under
>>> the control.
>>> Unique!T holds the unique ownership of given object typed T.
>>> yes, Unique can hold an object on heap, but also should be able to
>>> hold stack allocated object.
>>> (In this case, Unique!T will work as rebindable scoped!T, IMO)
>>>
>>> An experimental implementation of mine.
>>> https://github.com/9rnsr/scrap/blob/master/typecons/unique.d
>>>
>>> Kenji Hara
>>>
>> Can you give an example where a unique value type is useful.
>
> Transferring ownership across threads. Thanks Kenji for working on this.  
> An essential aspect will be to get the move right.
>
> Andrei
>
I probably miss the point but here is what I see.
Values are unshared by default so transferring ownership
only make sense for structs owning shared resources.
To make this safe you'd need to enforce uniqueness for all fields as well.
Aliasing and static values are corner cases of that rule.

What I wanted to add is a unique_ptr like construct to help
reducing the pervasive use of GC memory for unshared objects.


More information about the phobos mailing list