Section: 184.108.40.206 [fs.path.itr] Status: New Submitter: Jiang An Opened: 2022-10-17 Last modified: 2022-11-01 17:49:14 UTC
View all other issues in [fs.path.itr].
View all issues with New status.
Currently, 220.127.116.11 [fs.path.itr]/2 effectively requires std::filesystem::path::iterator::reference to be a reference type, due to the requirements for (legacy) bidirectional iterators. However, it's reasonable for the operator* to return path by value, which can make the iterator model std::bidirectional_iterator, be compatible with std::reverse_iterator, and avoid complicated data structures (e.g. those in libstdc++) for achieving such purpose.libc++ is already doing so. I think we should make such a strategy conforming.
[2022-11-01; Reflector poll]
Set priority to 3 after reflector poll.
This wording is relative to N4917.
Modify 18.104.22.168 [fs.path.itr] as indicated:
-2- A path::iterator is a constant iterator meeting all the requirements of a bidirectional iterator (22.214.171.124 [bidirectional.iterators]) except that, for dereferenceable iterators a and b of type path::iterator with a == b, there is no requirement that *a and *b are bound to the same object. Its value_type is path.