stl_tree.h: Overload operators == and != to be able to handle the case...
authorBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 17 Nov 2000 22:58:19 +0000 (22:58 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 17 Nov 2000 22:58:19 +0000 (22:58 +0000)
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

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_tree.h

index 71197d4c0fd0406b282079044f9cfffa2da6ee2e..af4c6975f50032a3d6496c647a7f1a338c811967 100644 (file)
@@ -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.
index 1c78fd2aa45eb3067d1991b08ab37a51d85ca72a..f82f21c3c07eae4374ed5cdbf58f9ff3e099f8b6 100644 (file)
@@ -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