chunkBy array at compile time
Steven Schveighoffer
schveiguy at gmail.com
Wed Dec 19 18:19:28 UTC 2018
On 12/19/18 12:20 PM, H. S. Teoh wrote:
> On Wed, Dec 19, 2018 at 10:38:06AM -0500, Steven Schveighoffer via Digitalmars-d-learn wrote:
> [...]
>> Looking at the code for chunkBy, it seems to me that the
>> implementation is quite complex for what in my head should be a simple
>> wrapper...
> [...]
>
> It was originally a simple wrapper when I first submitted it, but Andrei
> requested to use RefCounted in order to work around the subrange
> traversal problem. I.e., in the original implementation, the underlying
> range traversed twice, once when each subrange is consumed, and once
> when you call popFront on the outer range. Having RefCounted allows us
> to retain a reference to the original range so that subranges will also
> advance the underlying range as seen by the outer range, thereby
> eliminating calling popFront on the underlying range twice per element.
I see, that does pose an issue, especially if you aren't traversing it
in order. Communicating back to the "outer" range where the traversal
should stop requires having a reference to it in the subrange.
However, in terms of a random-access range, or even an array, it should
be pretty straightforward to... oh wait, these are narrow strings.
nevermind.
-Steve
More information about the Digitalmars-d-learn
mailing list