Section: 24.6.9.1 [flat.map.overview], 24.6.10.1 [flat.multimap.overview] Status: New Submitter: Jiang An Opened: 2023-08-04 Last modified: 2023-10-30 16:39:42 UTC
Priority: 3
View all other issues in [flat.map.overview].
View all issues with New status.
Discussion:
24.6.9.1 [flat.map.overview] and 24.6.10.1 [flat.multimap.overview] currently only require that the iterator types meet Cpp17InputIterator requirements and model the std::random_access_iterator concept.
The intent seems to be thatthe operator*() returns proxy references of type std::pair<const K&, V&> or std::pair<const K&, const V&> (same as the reference or const_reference types of the container adaptors), and
the value_type of these iterators is std::pair<K, V> (same as the value_type of the container adaptors).
However, such intent doesn't seem to be clear.
Moreover, given such possibly intended iterator types don't meet Cpp17ForwardIterator requirements, we may need to mention the exceptions in 24.2.2.2 [container.reqmts] or 24.2.7.1 [associative.reqmts.general].[2023-10-30; Reflector poll]
Set priority to 3 after reflector poll.
Proposed resolution: