aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/bits/stl_set.h
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2005-11-22 14:55:09 +0000
committerPaolo Carlini <pcarlini@suse.de>2005-11-22 14:55:09 +0000
commit6b8cfad284790f4d99efb93a2342924e2da7258d (patch)
tree5cf62f1751c9208a013d00d888e425505fe80fdf /libstdc++-v3/include/bits/stl_set.h
parent7114452d187d8b56dd9de6e8f0be2b973883af65 (diff)
2005-11-22 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/24975 * include/bits/stl_set.h (insert(iterator, const value_type&), erase(iterator), erase(iterator, iterator)): Don't break aliasing rules casting to _Rep_iterator&, forward to _Rb_tree facilities. * include/bits/stl_multiset.h (insert(iterator, const value_type&), erase(iterator), erase(iterator, iterator)): Likewise. * include/bits/stl_tree.h (_Rb_tree<>::_M_insert(_Const_Base_ptr, _Const_Base_ptr, const value_type&), insert_unique(const_iterator, const value_type&), insert_equal(const_iterator, const value_type&), erase(const_iterator), erase(const_iterator, const_iterator)): New, _Rb_tree<>::const_iterator counterparts of existing facilities. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/gcc-4_1-branch@107363 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/bits/stl_set.h')
-rw-r--r--libstdc++-v3/include/bits/stl_set.h24
1 files changed, 8 insertions, 16 deletions
diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h
index 2a240e19604..1172e509311 100644
--- a/libstdc++-v3/include/bits/stl_set.h
+++ b/libstdc++-v3/include/bits/stl_set.h
@@ -343,10 +343,7 @@ namespace _GLIBCXX_STD
*/
iterator
insert(iterator __position, const value_type& __x)
- {
- typedef typename _Rep_type::iterator _Rep_iterator;
- return _M_t.insert_unique((_Rep_iterator&)__position, __x);
- }
+ { return _M_t.insert_unique(__position, __x); }
/**
* @brief A template function that attemps to insert a range of elements.
@@ -357,9 +354,9 @@ namespace _GLIBCXX_STD
* Complexity similar to that of the range constructor.
*/
template<class _InputIterator>
- void
- insert(_InputIterator __first, _InputIterator __last)
- { _M_t.insert_unique(__first, __last); }
+ void
+ insert(_InputIterator __first, _InputIterator __last)
+ { _M_t.insert_unique(__first, __last); }
/**
* @brief Erases an element from a %set.
@@ -372,10 +369,7 @@ namespace _GLIBCXX_STD
*/
void
erase(iterator __position)
- {
- typedef typename _Rep_type::iterator _Rep_iterator;
- _M_t.erase((_Rep_iterator&)__position);
- }
+ { _M_t.erase(__position); }
/**
* @brief Erases elements according to the provided key.
@@ -389,7 +383,8 @@ namespace _GLIBCXX_STD
* in any way. Managing the pointer is the user's responsibilty.
*/
size_type
- erase(const key_type& __x) { return _M_t.erase(__x); }
+ erase(const key_type& __x)
+ { return _M_t.erase(__x); }
/**
* @brief Erases a [first,last) range of elements from a %set.
@@ -404,10 +399,7 @@ namespace _GLIBCXX_STD
*/
void
erase(iterator __first, iterator __last)
- {
- typedef typename _Rep_type::iterator _Rep_iterator;
- _M_t.erase((_Rep_iterator&)__first, (_Rep_iterator&)__last);
- }
+ { _M_t.erase(__first, __last); }
/**
* Erases all elements in a %set. Note that this function only erases