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
This commit is contained in:
parent
84b9f762bb
commit
5c626f5260
@ -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>
|
2001-06-04 Brendan Kehoe <brendan@zen.org>
|
||||||
Phil Edwards <pme@sources.redhat.com>
|
Phil Edwards <pme@sources.redhat.com>
|
||||||
|
|
||||||
|
PR libstdc++/3018
|
||||||
* include/bits/std_bitset.h (bitset::test): Fix __pos >= _Nb
|
* include/bits/std_bitset.h (bitset::test): Fix __pos >= _Nb
|
||||||
comparison; all positions must be < _Nb.
|
comparison; all positions must be < _Nb.
|
||||||
* testsuite/23_containers/bitset_members.cc: New file.
|
* testsuite/23_containers/bitset_members.cc: New file.
|
||||||
|
@ -151,8 +151,32 @@ public:
|
|||||||
|
|
||||||
// multiset operations:
|
// 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); }
|
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 {
|
iterator lower_bound(const key_type& __x) const {
|
||||||
return _M_t.lower_bound(__x);
|
return _M_t.lower_bound(__x);
|
||||||
}
|
}
|
||||||
@ -162,6 +186,7 @@ public:
|
|||||||
pair<iterator,iterator> equal_range(const key_type& __x) const {
|
pair<iterator,iterator> equal_range(const key_type& __x) const {
|
||||||
return _M_t.equal_range(__x);
|
return _M_t.equal_range(__x);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
template <class _K1, class _C1, class _A1>
|
template <class _K1, class _C1, class _A1>
|
||||||
friend bool operator== (const multiset<_K1,_C1,_A1>&,
|
friend bool operator== (const multiset<_K1,_C1,_A1>&,
|
||||||
|
@ -148,10 +148,34 @@ public:
|
|||||||
|
|
||||||
// set operations:
|
// set operations:
|
||||||
|
|
||||||
iterator find(const key_type& __x) const { return _M_t.find(__x); }
|
|
||||||
size_type count(const key_type& __x) const {
|
size_type count(const key_type& __x) const {
|
||||||
return _M_t.find(__x) == _M_t.end() ? 0 : 1;
|
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 {
|
iterator lower_bound(const key_type& __x) const {
|
||||||
return _M_t.lower_bound(__x);
|
return _M_t.lower_bound(__x);
|
||||||
}
|
}
|
||||||
@ -161,6 +185,7 @@ public:
|
|||||||
pair<iterator,iterator> equal_range(const key_type& __x) const {
|
pair<iterator,iterator> equal_range(const key_type& __x) const {
|
||||||
return _M_t.equal_range(__x);
|
return _M_t.equal_range(__x);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
template <class _K1, class _C1, class _A1>
|
template <class _K1, class _C1, class _A1>
|
||||||
friend bool operator== (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&);
|
friend bool operator== (const set<_K1,_C1,_A1>&, const set<_K1,_C1,_A1>&);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user