Idea #1 on integrating RC with GC
Nick Sabalausky
SeeWebsiteToContactMe at semitwist.com
Wed Feb 5 14:03:26 PST 2014
On 2/5/2014 10:31 AM, Andrei Alexandrescu wrote:
> On 2/5/14, 12:03 AM, Nick Sabalausky wrote:
>> If that's so, then I'd think lib authors could easily provide APIs that
>> offer GC by default and ARC as an opt-in choice with templating:
>>
>> enum WantARC { Yes, No }
>> auto getFoo(WantARC arc = WantARC.No)() {
>> static if(arc == WantARC.No)
>> return getFoo().toGC();
>> else {
>> RCSlice!T x = ...;
>> return x;
>> }
>> }
>
> Nice. Though I'd say just return RC strings and let the client call
> toGC. They'd need to specify WantArc.No anyway so one way or another the
> user has to do something.
>
Note the default parameter of WantARC.No. Therefore:
// GC:
T[] fooGC = getFoo(); // Nothing special specified
// ARC:
RCSlice!T = getFoo!(WantARC.Yes)();
Or am I missing something?
More information about the Digitalmars-d
mailing list