Smart pointers instead of GC?

Sven Over dlang at svenover.de
Mon Dec 31 04:42:05 PST 2012


On Monday, 31 December 2012 at 12:36:06 UTC, monarch_dodra wrote:
> On Monday, 31 December 2012 at 12:14:22 UTC, Sven Over wrote:

>> A smart-pointer type for arrays can easily provide slices. It 
>> keeps a reference to the full array (which gets destructed 
>> when the last reference is dropped), but addresses a subrange.

> I think the problem would be if you try to append to the slice 
> (~): If the underlying array is not GC allocated, then it will 
> append to a new GC allocated array (AFAIK).
>
> As long as you don't append, I'd say you are fine.

Of course your smart-array-pointer type needs to implement the ~ 
operator and create a copy of the array in that case. I guess the 
full implementation would include something that would resemble 
that of std::vector in C++.

I should get started writing those types. Then I could either 
demonstrate that it does work, or understand that it doesn't (and 
why).


More information about the Digitalmars-d mailing list