diff options
author | Phil Edwards <pme@gcc.gnu.org> | 2001-06-04 17:50:18 +0000 |
---|---|---|
committer | Phil Edwards <pme@gcc.gnu.org> | 2001-06-04 17:50:18 +0000 |
commit | 5c626f5260d6e2f48bdbd5461b74d11fdd02afe0 (patch) | |
tree | b3c5662662e3592113b56894d8eb0722dfc09dbb | |
parent | 84b9f762bba065535f93a034820ab348e63eee49 (diff) | |
download | gcc-5c626f5260d6e2f48bdbd5461b74d11fdd02afe0.zip gcc-5c626f5260d6e2f48bdbd5461b74d11fdd02afe0.tar.gz gcc-5c626f5260d6e2f48bdbd5461b74d11fdd02afe0.tar.bz2 |
re PR libstdc++/3034 (DR 214)
2001-06-04 Phil Edwards <pme@sources.redhat.com>
PR libstdc++/3034
* include/bits/stl_multiset.h (find, lower_bound, upper_bound,
equal_range): Add const overloads as per LWG DR 214.
* include/bits/stl_set.h: Likewise.
From-SVN: r42862
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_multiset.h | 27 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_set.h | 27 |
3 files changed, 60 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 361884c..8203b2e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,6 +1,14 @@ +2001-06-04 Phil Edwards <pme@sources.redhat.com> + + PR libstdc++/3034 + * include/bits/stl_multiset.h (find, lower_bound, upper_bound, + equal_range): Add const overloads as per LWG DR 214. + * include/bits/stl_set.h: Likewise. + 2001-06-04 Brendan Kehoe <brendan@zen.org> Phil Edwards <pme@sources.redhat.com> + PR libstdc++/3018 * include/bits/std_bitset.h (bitset::test): Fix __pos >= _Nb comparison; all positions must be < _Nb. * testsuite/23_containers/bitset_members.cc: New file. diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h index bb4e5a9..2d16985 100644 --- a/libstdc++-v3/include/bits/stl_multiset.h +++ b/libstdc++-v3/include/bits/stl_multiset.h @@ -151,8 +151,32 @@ public: // multiset operations: - iterator find(const key_type& __x) const { return _M_t.find(__x); } size_type count(const key_type& __x) const { return _M_t.count(__x); } + +#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS +//214. set::find() missing const overload + iterator find(const key_type& __x) { return _M_t.find(__x); } + const_iterator find(const key_type& __x) const { return _M_t.find(__x); } + iterator lower_bound(const key_type& __x) { + return _M_t.lower_bound(__x); + } + const_iterator lower_bound(const key_type& __x) const { + return _M_t.lower_bound(__x); + } + iterator upper_bound(const key_type& __x) { + return _M_t.upper_bound(__x); + } + const_iterator upper_bound(const key_type& __x) const { + return _M_t.upper_bound(__x); + } + pair<iterator,iterator> equal_range(const key_type& __x) { + return _M_t.equal_range(__x); + } + pair<const_iterator,const_iterator> equal_range(const key_type& __x) const { + return _M_t.equal_range(__x); + } +#else + iterator find(const key_type& __x) const { return _M_t.find(__x); } iterator lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } @@ -162,6 +186,7 @@ public: pair<iterator,iterator> equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } +#endif template <class _K1, class _C1, class _A1> friend bool operator== (const multiset<_K1,_C1,_A1>&, diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h index 3cfffb4..13dca9f 100644 --- a/libstdc++-v3/include/bits/stl_set.h +++ b/libstdc++-v3/include/bits/stl_set.h @@ -148,10 +148,34 @@ public: // set operations: - iterator find(const key_type& __x) const { return _M_t.find(__x); } size_type count(const key_type& __x) const { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } + +#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS +//214. set::find() missing const overload + iterator find(const key_type& __x) { return _M_t.find(__x); } + const_iterator find(const key_type& __x) const { return _M_t.find(__x); } + iterator lower_bound(const key_type& __x) { + return _M_t.lower_bound(__x); + } + const_iterator lower_bound(const key_type& __x) const { + return _M_t.lower_bound(__x); + } + iterator upper_bound(const key_type& __x) { + return _M_t.upper_bound(__x); + } + const_iterator upper_bound(const key_type& __x) const { + return _M_t.upper_bound(__x); + } + pair<iterator,iterator> equal_range(const key_type& __x) { + return _M_t.equal_range(__x); + } + pair<const_iterator,const_iterator> equal_range(const key_type& __x) const { + return _M_t.equal_range(__x); + } +#else + iterator find(const key_type& __x) const { return _M_t.find(__x); } iterator lower_bound(const key_type& __x) const { return _M_t.lower_bound(__x); } @@ -161,6 +185,7 @@ public: pair<iterator,iterator> equal_range(const key_type& __x) const { return _M_t.equal_range(__x); } +#endif template <class _K1, class _C1, class _A1> friend bool operator== (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&); |