[Bug libstdc++/70303] Value-initialized debug iterators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303 François Dumont changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED Target Milestone|--- |11.0 --- Comment #7 from François Dumont --- Main issue fixed as part of PR 98466 and 33a1e511b57465d898429740377466894a0b247d fixed the last part for deque::iterator - operator.
[Bug libstdc++/70303] Value-initialized debug iterators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303 François Dumont changed: What|Removed |Added CC||fdumont at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |fdumont at gcc dot gnu.org --- Comment #6 from François Dumont --- After fixing the duplicate PR 98466 std::vector::iterator is ok but std::deque::iterator seems to be broken still. Taking it.
[Bug libstdc++/70303] Value-initialized debug iterators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303 --- Comment #5 from Casey Carter --- IIRC my reasoning was that [random.access.iterators] specifies the operational semantics of `a < b` to be `b - a > 0`, which suggests but doesn't quite require that `a < b` is valid whenever `b - a` is valid.
[Bug libstdc++/70303] Value-initialized debug iterators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303 Casey Carter changed: What|Removed |Added CC||Casey at Carter dot net --- Comment #4 from Casey Carter --- (In reply to Jonathan Wakely from comment #3) > Or is the implication of equality being valid that a+n is valid for n==0, > and therefore b-a is valid, and therefore relational ops are valid? Certainly b-a is required to be valid, since such an n exists as required by [random.access.iterators] - but admittedly the IS doesn't specify the domain for relational comparisons on Cpp17 iterators. IMO this is a defect since it implies you can *never* compare two iterators with e.g. <. We should require the domain of relational comparisons to be the same as the domain of equality, which would then make it clear that value-initialized iterators are in their domain. (I was under the impression that we *did* require this "somewhere" when I filed this issue and fixed MSFTL's iterators.)
[Bug libstdc++/70303] Value-initialized debug iterators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303 --- Comment #3 from Jonathan Wakely --- Or is the implication of equality being valid that a+n is valid for n==0, and therefore b-a is valid, and therefore relational ops are valid?
[Bug libstdc++/70303] Value-initialized debug iterators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303 --- Comment #2 from Jonathan Wakely --- My reading of the N3644 changes is that only equality comparisons are supported, not relational ones.
[Bug libstdc++/70303] Value-initialized debug iterators
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70303 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-03-19 Ever confirmed|0 |1 --- Comment #1 from Jonathan Wakely --- Confirmed (fixing this would remove the "Partial" support noted at https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014 :-)