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
This commit is contained in:
Benjamin Kosnik 2000-11-17 22:58:19 +00:00
parent 8e2d9424bf
commit c9b6c28211
2 changed files with 31 additions and 1 deletions

View 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.

View 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