"Christophe Travert" <trav...@phare.normalesup.org> wrote in message news:jthp14$30em$1...@digitalmars.com... > "Daniel Murphy" , dans le message (digitalmars.D:171741), a écrit : >> "Christophe Travert" <trav...@phare.normalesup.org> wrote in message >> news:jthmu8$2s5b$1...@digitalmars.com... >>> "Daniel Murphy" , dans le message (digitalmars.D:171720), a écrit : >>>> Could it be extended to accept multiple values? (sort of like chain) >>>> eg. >>>> foreach(x; makeRange(23, 7, 1990)) // NO allocations! >>>> { >>>> .... >>>> } >>>> I would use this in a lot of places I currently jump through hoops to >>>> get >>>> a >>>> static array without allocating. >>> >>> That's a good idea. IMHO, the real solution would be to make an easy way >>> to create static arrays, and slice them when you want a range. >> >> It's not quite the same thing, static arrays are not ranges and once you >> slice them you no longer have a value type, and might be referring to >> stack >> allocated data. With... this thing, the length/progress is not encoded >> in >> the type (making it rangeable) but the data _is_ contained in the type, >> making it safe to pass around. The best of both worlds, in some >> situations. > > OK, I see. This goes against the principle that ranges are small and > easy to copy arround, but it can be useful when you know what you are > doing, or when the number of items is small. >
Yeah, it works where you'd pass a tuple of elements of the same type, but want to iterate over it. > I don't like makeRange much. Would you have a better name? smallRange? > rangeOf? > > rangeit