Steven Schveighoffer wrote:
Andrei Alexandrescu wrote:
Steven Schveighoffer wrote:
On Fri, 22 May 2009 21:22:55 -0400, Andrei Alexandrescu
<[email protected]> wrote:
1. Any range should be seamlessly and efficiently used as an input
range.
This is the assumption I am challenging. I don't think you need this
assumptions for ranges to work. You can always bolt input range
functionality on top of a stream range if you want to treat a stream
as an input range for some reason.
I believe there is indeed a terminology problem. To me, "input range" ==
"stream" == "socket" == "bridge that is sinking under your feet as you
walk it". So to me there exists no "stream range". That to me is an
"input range".
But if foreach doesn't utilize the popNext api, then streams require
an unnecessary layer on top, just to use foreach with them.
We can arrange that foreach uses popNext, but it must be worth it.
Andrei
On Fri, 22 May 2009 21:50:03 -0400, Andrei Alexandrescu
<[email protected]> wrote:
Steven Schveighoffer wrote:
On Fri, 22 May 2009 21:22:55 -0400, Andrei Alexandrescu
<[email protected]> wrote:
1. Any range should be seamlessly and efficiently used as an input
range.
This is the assumption I am challenging. I don't think you need
this assumptions for ranges to work. You can always bolt input range
functionality on top of a stream range if you want to treat a stream
as an input range for some reason.
I believe there is indeed a terminology problem. To me, "input range"
== "stream" == "socket" == "bridge that is sinking under your feet as
you walk it". So to me there exists no "stream range". That to me is
an "input range".
OK, I can see you're not going to alter your opinion, so I'll stop
debating. I respectfully disagree with your definitions.
I'm using STL's definitions. I'd be glad to depart if there was a solid
reason. How would you name things?
But if foreach doesn't utilize the popNext api, then streams require
an unnecessary layer on top, just to use foreach with them.
We can arrange that foreach uses popNext, but it must be worth it.
I can't say for certain that it is, but you definitely will know if when
you start implementing ranges based on stuff like files, and things just
seem difficult to implement or have unsolvable problems. I guess we
wait and see.
One hopeful element is that there are usually more containers than
streams/files. Besides, most streams are buffered. So maybe things
aren't that bad.
Andrei