Safe Usage of Mutable Ranges in foreach scopes

via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri May 8 04:47:42 PDT 2015


On Friday, 8 May 2015 at 11:32:50 UTC, Per Nordlöw wrote:
> On Friday, 8 May 2015 at 11:29:53 UTC, Per Nordlöw wrote:
>>> Such a feature would make the usage of this pattern very 
>>> (perhaps even absolutely) safe from a memory corruption point 
>>> of view.

An alternative non-restrictive (relaxed) possibile solution here 
is to change `byLine` to instead return a reference counted or 
GC-allocated object. Then in each iteration `ByLine.popFront()` 
checks if the number of references for the internally stored line 
is >= 2 (including its own reference). If so `ByLine.popFront()` 
allocates a new instance of the internally stored line and return 
that in the new iteration (through return-value of front()). I'm 
assuming this is not implemented.

Is it possible to quickly query the number of references (and 
slices) of a GC-allocated object?

Destroy, once again!


More information about the Digitalmars-d-learn mailing list