stl_tree.h: Make operators !=, == type safe for map, set.
authorBrad Garcia <bgarcia@laurelnetworks.com>
Thu, 7 Sep 2000 21:08:59 +0000 (21:08 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Thu, 7 Sep 2000 21:08:59 +0000 (21:08 +0000)
2000-09-07  Brad Garcia  <bgarcia@laurelnetworks.com>

* bits/stl_tree.h: Make operators !=, == type safe for map, set.
* testsuite/23_containers/set_operators.cc: New file. Should not
compile.
* testsuite/23_containers/map_operators.cc: New file. Ditto.

From-SVN: r36247

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

index c61d9ef..119f882 100644 (file)
@@ -1,3 +1,10 @@
+2000-09-07  Brad Garcia  <bgarcia@laurelnetworks.com>
+
+       * bits/stl_tree.h: Make operators !=, == type safe for map, set.
+       * testsuite/23_containers/set_operators.cc: New file. Should not
+       compile.  
+       * testsuite/23_containers/map_operators.cc: New file. Ditto.
+       
 2000-09-06  Richard Henderson  <rth@cygnus.com>
            Benjamin Kosnik  <bkoz@cygnus.com>
 
index 9ab9daf..1c78fd2 100644 (file)
@@ -184,13 +184,15 @@ struct _Rb_tree_iterator : public _Rb_tree_base_iterator
   }
 };
 
-inline bool operator==(const _Rb_tree_base_iterator& __x,
-                       const _Rb_tree_base_iterator& __y) {
+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;
 }
 
-inline bool operator!=(const _Rb_tree_base_iterator& __x,
-                       const _Rb_tree_base_iterator& __y) {
+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;
 }