[
https://issues.apache.org/jira/browse/STDCXX-645?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Sebor reopened STDCXX-645:
---------------------------------
Turns out that having the iterator check {{ios::fail()}} rather than
{{ios::eof()}} is preferred by other implementers and probably makes more sense
from a compatibility standpoint (assuming most implementations actually use
{{ios::operator void*()}} (or equivalent) to decide when to turn a
dereferenceable iterator into an end-of-stream one. The new proposed resolution
is what made it into LWG issue 788, available for preview here:
http://home.twcny.rr.com/hinnant/cpp_extensions/issues_preview/lwg-active.html#788
Reopening to adjust accordingly.
> stream iterators into different streams compare equal
> -----------------------------------------------------
>
> Key: STDCXX-645
> URL: https://issues.apache.org/jira/browse/STDCXX-645
> Project: C++ Standard Library
> Issue Type: Bug
> Components: 24. Iterators
> Affects Versions: 4.1.3, 4.2.0
> Reporter: Mark Brown
> Assignee: Martin Sebor
> Fix For: 4.2.1
>
> Attachments: c++std-lib-20221.eml
>
> Original Estimate: 2h
> Time Spent: 6h
> Remaining Estimate: 0h
>
> As Travis says in his reply to my post here:
> http://www.nabble.com/stream-iterators-into-different-streams-compare-equal--tf4721505.html#a13498487:
> Given 24.5.1.1 p1 and p2, it is pretty clear to me that the two iterators
> are both non-end-of-stream type, and they are both created on different
> streams. The streams are different, so the iterators should not compare
> equal. I guess one could claim that 24.5.1.2 p6 conflicts with 24.5 p3
> because 'end-of-stream' isn't clearly defined, but in this particular case
> that doesn't matter.
> This program aborts with stdcxx but not with gcc:
> {code}
> #include <assert.h>
> #include <iterator>
> #include <sstream>
> int main ()
> {
> std::istringstream a ("1");
> std::istream_iterator<int> i (a);
> std::istringstream b ("2");
> std::istream_iterator<int> j (b);
> assert (!(i == j));
> }
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.