stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Add and use it throughout.

2010-11-09  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/bits/stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Add
	and use it throughout.

From-SVN: r166487
This commit is contained in:
Paolo Carlini 2010-11-09 13:21:39 +00:00 committed by Paolo Carlini
parent a618dbe369
commit 17da7b3783
2 changed files with 13 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2010-11-09 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_tree.h (_Rb_tree<>::_M_const_cast_iter): Add
and use it throughout.
2010-11-09 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/46385

View File

@ -556,6 +556,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
private:
iterator
_M_const_cast_iter(const_iterator __cit)
{ return iterator(static_cast<_Link_type>
(const_cast<_Base_ptr>(__cit._M_node))); }
iterator
_M_insert_(_Const_Base_ptr __x, _Const_Base_ptr __y,
const value_type& __v);
@ -719,8 +724,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
const_iterator __result = __position;
++__result;
_M_erase_aux(__position);
return iterator(static_cast<_Link_type>
(const_cast<_Base_ptr>(__result._M_node)));
return _M_const_cast_iter(__result);
}
#else
void
@ -737,8 +741,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
erase(const_iterator __first, const_iterator __last)
{
_M_erase_aux(__first, __last);
return iterator(static_cast<_Link_type>
(const_cast<_Base_ptr>(__last._M_node)));
return _M_const_cast_iter(__last);
}
#else
void
@ -1279,8 +1282,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
}
else
// Equivalent keys.
return iterator(static_cast<_Link_type>
(const_cast<_Base_ptr>(__position._M_node)));
return _M_const_cast_iter(__position);
}
template<typename _Key, typename _Val, typename _KeyOfValue,