Idea #1 on integrating RC with GC

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Feb 4 15:51:35 PST 2014


Consider we add a library slice type called RCSlice!T. It would have the 
same primitives as T[] but would use reference counting through and 
through. When the last reference count is gone, the buffer underlying 
the slice is freed. The underlying allocator will be the GC allocator.

Now, what if someone doesn't care about the whole RC thing and aims at 
convenience? There would be a method .toGC that just detaches the slice 
and disables the reference counter (e.g. by setting it to uint.max/2 or 
whatever).

Then people who want reference counting say

auto x = fun();

and those who don't care say:

auto x = fun().toGC();


Destroy.

Andrei


More information about the Digitalmars-d mailing list