Problem with std.array(std.regex.splitter())

Jonathan M Davis jmdavisprog at gmail.com
Mon Aug 9 02:19:21 PDT 2010


On Monday 09 August 2010 01:13:30 Pelle wrote:
> std.array.array() erroneously requires a forward range, where it should
> require an input range.
> 
> Splitter also does not define save(), so it's not a forward range.

Well, the requirement for save() being part of a forward range is fairly recent, 
and a bunch of ranges which are supposed to be forward ranges don't have them 
even though they're supposed to. The change was made fairly close to the release 
of 2.047, I believe, and it was missed for many ranges. It's mostly if not 
entirely fixed in svn. Actually, if I try and compile Bearophile's code on my 
machine (which has a fairly recent version of phobos), it compiles just fine. So, 
I don't know if array() should require an input range or a forward range, but 
the issue here has to do with recent changes to forward ranges which didn't make 
it into all forward ranges. It should be fixed with 2.048.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list