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.
map
and multimap
members should be removedSection: 23.4.3 [map], 23.4.4 [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 23.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, 23.4.3.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- Thefind
,lower_bound
,upper_bound
andequal_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 aconst_iterator
and the non-const version aniterator
(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- Thefind
,lower_bound
,upper_bound
andequal_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 aconst_iterator
and the non-const version aniterator
(23.2.4).