Reference counted containers prototype

SHOO zan77137 at nifty.com
Tue Dec 27 03:32:37 PST 2011


When I tried implementation of Unique which was not usable at all 
though it was listed in a document, I faced a similar problem.
The patch of Kenji is intended to just solve this.
Even if these patch applied, some problems are left. (e.g. 
Automatic definitions of the opEquals function for Objects / see 
also: https://github.com/D-Programming-Language/druntime/pull/72 )
However, I think that the priority of these pull request is high.

On Tuesday, 27 December 2011 at 11:27:43 UTC, kenji hara wrote:
> I've already posted a dmd patch to fix all of opDispatch 
> problems:
>
> https://github.com/D-Programming-Language/dmd/pull/280
>
> With it, I've posted a useful library utility to implement
> 'super-type' like D1 typedef:
>
> https://github.com/D-Programming-Language/phobos/pull/300
>
> I'm naming it 'ProxyOf', and it supports various of forwardings,
> function call, property access, and specialized template member
> function.
>
> Kenji Hara
>
> 2011/12/27 Andrei Alexandrescu <SeeWebsiteForEmail at erdani.org>:
>> On 12/26/11 7:25 PM, Peter Alexander wrote:
>>>
>>> Following up to this, how do I access non-function members of 
>>> the held
>>> object? e.g.
>>>
>>> struct Foo
>>> {
>>> int x = 1;
>>> }
>>>
>>> void main()
>>> {
>>> RefCounted!Foo f;
>>> writeln(f.x); // Doesn't work
>>> }
>>
>>
>> We can easily have opDispatch look at field names. But I think 
>> it's poor
>> design to expose bald data anyway.
>>
>>
>>> Also, what about template member functions of the held object?
>>>
>>> struct Foo
>>> {
>>> int get(int X)() { return X; }
>>> }
>>>
>>> void main()
>>> {
>>> RefCounted!Foo f;
>>> writeln(f.get!123()); // Doesn't work either
>>> }
>>
>>
>> This is a problem.
>>
>>
>> Andrei




More information about the Digitalmars-d mailing list