Relaxing the definition of isSomeString and isNarrowString

Kiith-Sa via Digitalmars-d digitalmars-d at puremagic.com
Sun Aug 24 06:04:09 PDT 2014


On Sunday, 24 August 2014 at 12:49:30 UTC, Marc Schütz wrote:
> On Sunday, 24 August 2014 at 12:24:03 UTC, Andrei Alexandrescu 
> wrote:
>> To that end I'm working on RCString, an industrial-strength 
>> string type that's much like string, just reference counted 
>> and with configurable allocation. It's safe, too - user code 
>> cannot casually extract references to string internals. By 
>> default allocation would use GC's primitives; one thing I 
>> learned to appreciate about our GC is its ability to free 
>> memory explicitly, which means RCString will free memory 
>> deterministically most of the time, yet if you leak some (e.g. 
>> by having RCString class members) the GC will pick up the 
>> litter. I think reference counting backed up by a GC that 
>> lifts litter and cycles and is a modern, emergent pattern that 
>> D could use to great effect.
>
> Any reason why this is restricted to strings? I.e., is there 
> something special about strings (apart from auto-decoding) that 
> doesn't apply to arrays in general? If not, wouldn't an RCArray 
> be a better idea?

We already have an 'RCArray' (std.container.Array) although it's 
not perfect.
We don't have a reference counted string type that would work 
with the string operation functions.


More information about the Digitalmars-d mailing list