This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++14 status.
Section: 24.4.4 [map], 24.4.5 [multimap] Status: C++14 Submitter: Daniel Krügler Opened: 2013-09-25 Last modified: 2017-06-15
Priority: Not Prioritized
View all other issues in [map].
View all issues with C++14 status.
Discussion:
Addresses ES 17
Sections are redundant with general associative container requirements at 24.2.7 [associative.reqmts], Table 102.
Suggested action: Delete sections.[2013-09-25 Daniel provides resolution suggestion]
[2013-09-25 Chicago]
Daniel's wording is good, move to Immediate to resolve NB comment.
[2013-09-29 Chicago]
Accept for Working Paper
Proposed resolution:
This wording is relative to N3691.
Change the header <map> synopsis, 24.4.4.1 [map.overview] p2 as indicated:
//23.4.4.5,map operations: iterator find(const key_type& x); const_iterator find(const key_type& x) const; template <class K> iterator find(const K& x); template <class K> const_iterator find(const K& x) const;
Delete the complete sub-clause [map.ops]:
23.4.4.5 map operations [map.ops]
iterator find(const key_type& x); const_iterator find(const key_type& x) const; iterator lower_bound(const key_type& x); const_iterator lower_bound(const key_type& x) const; iterator upper_bound(const key_type& x); const_iterator upper_bound(const key_type &x) const; pair<iterator, iterator> equal_range(const key_type &x); pair<const_iterator, const_iterator> equal_range(const key_type& x) const;
-1- The find, lower_bound, upper_bound and equal_range member functions each have two versions, one const and the other non-const. In each case the behavior of the two functions is identical except that the const version returns a const_iterator and the non-const version an iterator (23.2.4).
Delete the complete sub-clause [multimap.ops]:
23.4.5.4 multimap operations [multimap.ops]
iterator find(const key_type &x); const_iterator find(const key_type& x) const; iterator lower_bound(const key_type& x); const_iterator lower_bound(const key_type& x) const; pair<iterator, iterator> equal_range(const key_type &x); pair<const_iterator, const_iterator> equal_range(const key_type& x) const;
-1- The find, lower_bound, upper_bound and equal_range member functions each have two versions, one const and one non-const. In each case the behavior of the two versions is identical except that the const version returns a const_iterator and the non-const version an iterator (23.2.4).