http://d.puremagic.com/issues/show_bug.cgi?id=3123
David Simcha <dsimcha yahoo.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dsimcha yahoo.com
--- Comment #1 from David Simcha <dsimcha yahoo.com> 2009-10-25 15:30:37 PDT ---
The problem looks to be a question of whether range.front is an lvalue or not.
When range.front is an lvalue, DMD interprets &range.front as taking the
address of the front element of the range. When range.front is not an lvalue,
DMD interprets &range.front as taking the address of the member function
front() of range.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

The problem looks to be a question of whether range.front is an lvalue or not.
When range.front is an lvalue, DMD interprets &range.front as taking the
address of the front element of the range. When range.front is not an lvalue,
DMD interprets &range.front as taking the address of the member function
front() of range.

The problem is that Proxy tries to store a pointer to the fronts of each range.
In the case of these 'lazy' ranges, the pointer makes no sense. I have
uploaded a new version of Zip which I think solves this problem.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------

I changed Proxy to store by reference for ranges supporting reference return
types and by value otherwise. I also changed Zip to only support back and
popBack when all ranges are bidirectional. And I also changed Proxy.at to
return by reference.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------