Creating ranges over mutable, const, or immutable data structures.
Ali Çehreli via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Jun 3 10:07:32 PDT 2014
On 05/24/2014 11:01 AM, Ali Çehreli wrote:
> On 05/24/2014 10:02 AM, w0rp wrote:
>
> > I have been writing my own hashmap which can provide forward ranges
> > usable in @safe pure nothrow functions, because it's going to be useful
> > for creating graph data structures with the same. I came to writing my
> > ranges and I figured out how to do everything right for just mutable
> > hashmaps, but I have no idea how to manage the tail-const nature of
> > ranges in a variety of combinations. I figured out that I need to
> > satisfy the following constraints.
> >
> > Create a mutable KeyRange over a map which forwards on the right
> > constness for the key type, so the following must be true.
> >
> > HashMap!(K, V).keys.front -> K
> > const(HashMap!(K, V)).keys.front -> const(K)
> > immutable(HashMap!(K, V)).keys.front -> immutable(K)
> >
> > I have encounted some difficulty in trying to write a range which does
> > this.
>
> How timely! :) Jonathan Crapuchettes talked about facing the same issue
> in his talk at DConf. Perhaps he will post his WrapMutability template
> here or you can wait for his talk on YouTube.
>
> Ali
>
That presentation is published. WrapMutability appears at 32:55:
http://www.ustream.tv/recorded/47930242
Ali
More information about the Digitalmars-d-learn
mailing list