diff options
author | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2000-11-17 22:58:19 +0000 |
---|---|---|
committer | Benjamin Kosnik <bkoz@gcc.gnu.org> | 2000-11-17 22:58:19 +0000 |
commit | c9b6c28211cdf126b8e05c57a1ac9da148108a73 (patch) | |
tree | 56f38e8ab4c8308f8fc6aa0aff3fb02145f0d0a0 | |
parent | 8e2d9424bf801bdf62d43b9d4449b840bb050734 (diff) | |
download | gcc-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/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_tree.h | 24 |
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 |