Best way to make Until! into string

Philippe Sigaud philippe.sigaud at
Tue Jun 22 01:59:00 PDT 2010

On Tue, Jun 22, 2010 at 08:38, Jonathan M Davis <jmdavisProg at>wrote:

> Jonathan M Davis wrote:
> > Okay. If you call until like so
> >
> > str.until('\"')
> >
> > you get a Until!(pred,string,char). I want to turn that into a string.
> > array() doesn't seem to do the trick right now. It used to work, but now
> > it gives me
> >
> > main.d(47): Error: template std.array.array(Range) if (isForwardRange!
> > (Range)) does not match any function template declaration
> > main.d(47): Error: template std.array.array(Range) if (isForwardRange!
> > (Range)) cannot deduce template function from argument types !()(Until!
> > (pred,string,char))
> >I should say that array() used to work if you used to!string on the
> result,
> but in either case, it won't compile for me now with DMD 2.047 (it did with
> DMD 2.046) if I feed the result of until() to array(). Maybe it's a bug, or
> maybe I've just been doing the conversion in the wrong way in the first
> place, but I don't know how to do it now.
I got this error also while installing 2.047. I think the new definition of
a forward range asks for a .save() member. And I guess some ranges where not
converted. std.range.repeat is one, like cycle. It seems like Until is

Maybe for repeat/cycle that was a conscious decision? I'll file a bug

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Digitalmars-d-learn mailing list