aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kosnik <bkoz@gcc.gnu.org>2000-11-17 22:58:19 +0000
committerBenjamin Kosnik <bkoz@gcc.gnu.org>2000-11-17 22:58:19 +0000
commitc9b6c28211cdf126b8e05c57a1ac9da148108a73 (patch)
tree56f38e8ab4c8308f8fc6aa0aff3fb02145f0d0a0
parent8e2d9424bf801bdf62d43b9d4449b840bb050734 (diff)
downloadgcc-c9b6c28211cdf126b8e05c57a1ac9da148108a73.zip
gcc-c9b6c28211cdf126b8e05c57a1ac9da148108a73.tar.gz
gcc-c9b6c28211cdf126b8e05c57a1ac9da148108a73.tar.bz2
stl_tree.h: Overload operators == and != to be able to handle the case...
2000-11-17 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> * include/bits/stl_tree.h: Overload operators == and != to be able to handle the case (const_iterator,iterator) and (iterator,const_iterator), thus fixing libstdc++/737 and the like. From-SVN: r37531
-rw-r--r--libstdc++-v3/ChangeLog8
-rw-r--r--libstdc++-v3/include/bits/stl_tree.h24
2 files changed, 31 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 71197d4..af4c697 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2000-11-17 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
+
+ * include/bits/stl_tree.h: Overload operators == and != to be able
+ to handle the case (const_iterator,iterator) and
+ (iterator,const_iterator), thus fixing libstdc++/737 and the like.
+
2000-11-17 Loren J. Rittle <ljrittle@acm.org>
* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Correct last patch
@@ -52,7 +58,7 @@
* config/c_io_stdio.h: Include libio.h.
-Wed Nov 15 18:39:34 2000 Mark P Mitchell <mark@codesourcery.com>
+2000-11-15 Mark P Mitchell <mark@codesourcery.com>
* acinclude.m4 (GLIBCPP_ENABLE_CSTDIO): Substitute libio_la.
* src/Makefile.am (libstdc___la_LIBADD): Use it.
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index 1c78fd2..f82f21c 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -190,12 +190,36 @@ inline bool operator==(const _Rb_tree_iterator<_Value, _Ref, _Ptr>& __x,
return __x._M_node == __y._M_node;
}
+template <class _Value>
+inline bool operator==(const _Rb_tree_iterator<_Value, const _Value&, const _Value*>& __x,
+ const _Rb_tree_iterator<_Value, _Value&, _Value*>& __y) {
+ return __x._M_node == __y._M_node;
+}
+
+template <class _Value>
+inline bool operator==(const _Rb_tree_iterator<_Value, _Value&, _Value*>& __x,
+ const _Rb_tree_iterator<_Value, const _Value&, const _Value*>& __y) {
+ return __x._M_node == __y._M_node;
+}
+
template <class _Value, class _Ref, class _Ptr>
inline bool operator!=(const _Rb_tree_iterator<_Value, _Ref, _Ptr>& __x,
const _Rb_tree_iterator<_Value, _Ref, _Ptr>& __y) {
return __x._M_node != __y._M_node;
}
+template <class _Value>
+inline bool operator!=(const _Rb_tree_iterator<_Value, const _Value&, const _Value*>& __x,
+ const _Rb_tree_iterator<_Value, _Value&, _Value*>& __y) {
+ return __x._M_node != __y._M_node;
+}
+
+template <class _Value>
+inline bool operator!=(const _Rb_tree_iterator<_Value, _Value&, _Value*>& __x,
+ const _Rb_tree_iterator<_Value, const _Value&, const _Value*>& __y) {
+ return __x._M_node != __y._M_node;
+}
+
#ifndef __STL_CLASS_PARTIAL_SPECIALIZATION
inline bidirectional_iterator_tag