aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2010-02-11 18:11:01 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2010-02-11 18:11:01 +0000
commit932b650839a319e0f4236d74252cad0bd0b017b2 (patch)
tree9d2d8fe8b7b6404b007b8252226cfac5e01caf63
parent6d8921479a2a47ec10342142483b9291211c95c9 (diff)
downloadgcc-932b650839a319e0f4236d74252cad0bd0b017b2.zip
gcc-932b650839a319e0f4236d74252cad0bd0b017b2.tar.gz
gcc-932b650839a319e0f4236d74252cad0bd0b017b2.tar.bz2
PR libstdc++/41975, DR 579
2010-02-11 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/41975, DR 579 * include/bits/hashtable.h (_Hashtable<>::_M_erase_node): Remove. (erase(const_iterator), erase(const_iterator, const_iterator)): Change return type to void. * include/debug/unordered_map: Adjust. * include/debug/unordered_set: Likewise. * testsuite/util/exception/safety.h: Likewise. * testsuite/23_containers/unordered_map/erase/1.cc: Likewise. * testsuite/23_containers/unordered_map/erase/24061-map.cc: Likewise. * testsuite/23_containers/unordered_set/erase/1.cc: Likewise. * testsuite/23_containers/unordered_set/erase/24061-map.cc: Likewise. * testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise. * testsuite/23_containers/unordered_multimap/erase/24061-map.cc: Likewise. * testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise. * testsuite/23_containers/unordered_multiset/erase/24061-map.cc: Likewise. From-SVN: r156705
-rw-r--r--libstdc++-v3/ChangeLog20
-rw-r--r--libstdc++-v3/include/bits/hashtable.h76
-rw-r--r--libstdc++-v3/include/debug/unordered_map34
-rw-r--r--libstdc++-v3/include/debug/unordered_set34
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc21
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc20
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc20
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc2
-rw-r--r--libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc21
-rw-r--r--libstdc++-v3/testsuite/util/exception/safety.h24
13 files changed, 117 insertions, 161 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1f2d5e1..a571531 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,25 @@
2010-02-11 Paolo Carlini <paolo.carlini@oracle.com>
+ PR libstdc++/41975, DR 579
+ * include/bits/hashtable.h (_Hashtable<>::_M_erase_node): Remove.
+ (erase(const_iterator), erase(const_iterator, const_iterator)):
+ Change return type to void.
+ * include/debug/unordered_map: Adjust.
+ * include/debug/unordered_set: Likewise.
+ * testsuite/util/exception/safety.h: Likewise.
+ * testsuite/23_containers/unordered_map/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_map/erase/24061-map.cc: Likewise.
+ * testsuite/23_containers/unordered_set/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_set/erase/24061-map.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/erase/24061-map.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/erase/1.cc: Likewise.
+ * testsuite/23_containers/unordered_multiset/erase/24061-map.cc:
+ Likewise.
+
+2010-02-11 Paolo Carlini <paolo.carlini@oracle.com>
+
* config/abi/pre/gnu.ver: Avoid exporting inadvertently
std::nested_exception symbols at GLIBCXX_3.4.
diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h
index 96bb8ac..6d46932 100644
--- a/libstdc++-v3/include/bits/hashtable.h
+++ b/libstdc++-v3/include/bits/hashtable.h
@@ -385,9 +385,6 @@ namespace std
iterator
_M_insert(const value_type&, std::false_type);
- void
- _M_erase_node(_Node*, _Node**);
-
public:
// Insert and erase
_Insert_Return_Type
@@ -407,13 +404,13 @@ namespace std
insert(initializer_list<value_type> __l)
{ this->insert(__l.begin(), __l.end()); }
- iterator
+ void
erase(const_iterator);
size_type
erase(const key_type&);
- iterator
+ void
erase(const_iterator, const_iterator);
void
@@ -977,34 +974,6 @@ namespace std
return iterator(__new_node, _M_buckets + __n);
}
- // For erase(iterator) and erase(const_iterator).
- template<typename _Key, typename _Value,
- typename _Allocator, typename _ExtractKey, typename _Equal,
- typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
- bool __chc, bool __cit, bool __uk>
- void
- _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
- _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
- _M_erase_node(_Node* __p, _Node** __b)
- {
- _Node* __cur = *__b;
- if (__cur == __p)
- *__b = __cur->_M_next;
- else
- {
- _Node* __next = __cur->_M_next;
- while (__next != __p)
- {
- __cur = __next;
- __next = __cur->_M_next;
- }
- __cur->_M_next = __next->_M_next;
- }
-
- _M_deallocate_node(__p);
- --_M_element_count;
- }
-
template<typename _Key, typename _Value,
typename _Allocator, typename _ExtractKey, typename _Equal,
typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
@@ -1030,17 +999,30 @@ namespace std
typename _Allocator, typename _ExtractKey, typename _Equal,
typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
bool __chc, bool __cit, bool __uk>
- typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
- _H1, _H2, _Hash, _RehashPolicy,
- __chc, __cit, __uk>::iterator
+ void
_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
_H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
erase(const_iterator __it)
{
- iterator __result(__it._M_cur_node, __it._M_cur_bucket);
- ++__result;
- _M_erase_node(__it._M_cur_node, __it._M_cur_bucket);
- return __result;
+ _Node* __p = __it._M_cur_node;
+ _Node** __b = __it._M_cur_bucket;
+
+ _Node* __cur = *__b;
+ if (__cur == __p)
+ *__b = __cur->_M_next;
+ else
+ {
+ _Node* __next = __cur->_M_next;
+ while (__next != __p)
+ {
+ __cur = __next;
+ __next = __cur->_M_next;
+ }
+ __cur->_M_next = __next->_M_next;
+ }
+
+ _M_deallocate_node(__p);
+ --_M_element_count;
}
template<typename _Key, typename _Value,
@@ -1102,17 +1084,17 @@ namespace std
typename _Allocator, typename _ExtractKey, typename _Equal,
typename _H1, typename _H2, typename _Hash, typename _RehashPolicy,
bool __chc, bool __cit, bool __uk>
- typename _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
- _H1, _H2, _Hash, _RehashPolicy,
- __chc, __cit, __uk>::iterator
+ void
_Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal,
_H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>::
erase(const_iterator __first, const_iterator __last)
{
- while (__first != __last)
- __first = this->erase(__first);
- return iterator(__last._M_cur_node, __last._M_cur_bucket);
- }
+ if (__first == begin() && __last == end())
+ clear();
+ else
+ while (__first != __last)
+ erase(__first++);
+ }
template<typename _Key, typename _Value,
typename _Allocator, typename _ExtractKey, typename _Equal,
diff --git a/libstdc++-v3/include/debug/unordered_map b/libstdc++-v3/include/debug/unordered_map
index a5e6174..5f49aa6 100644
--- a/libstdc++-v3/include/debug/unordered_map
+++ b/libstdc++-v3/include/debug/unordered_map
@@ -243,25 +243,24 @@ namespace __debug
return __ret;
}
- iterator
+ void
erase(const_iterator __it)
{
__glibcxx_check_erase(__it);
__it._M_invalidate();
- return iterator(_Base::erase(__it.base()), this);
+ _Base::erase(__it.base());
}
- iterator
+ void
erase(const_iterator __first, const_iterator __last)
{
__glibcxx_check_erase_range(__first, __last);
for (const_iterator __tmp = __first; __tmp != __last;)
- {
- const_iterator __victim = __tmp++;
- __victim._M_invalidate();
- }
- return iterator(_Base::erase(__first.base(),
- __last.base()), this);
+ {
+ const_iterator __victim = __tmp++;
+ __victim._M_invalidate();
+ }
+ _Base::erase(__first.base(), __last.base());
}
_Base&
@@ -480,25 +479,24 @@ namespace __debug
return __ret;
}
- iterator
+ void
erase(const_iterator __it)
{
__glibcxx_check_erase(__it);
__it._M_invalidate();
- return iterator(_Base::erase(__it.base()), this);
+ _Base::erase(__it.base());
}
- iterator
+ void
erase(const_iterator __first, const_iterator __last)
{
__glibcxx_check_erase_range(__first, __last);
for (const_iterator __tmp = __first; __tmp != __last;)
- {
- const_iterator __victim = __tmp++;
- __victim._M_invalidate();
- }
- return iterator(_Base::erase(__first.base(),
- __last.base()), this);
+ {
+ const_iterator __victim = __tmp++;
+ __victim._M_invalidate();
+ }
+ _Base::erase(__first.base(), __last.base());
}
_Base&
diff --git a/libstdc++-v3/include/debug/unordered_set b/libstdc++-v3/include/debug/unordered_set
index f851718..8efe3fb 100644
--- a/libstdc++-v3/include/debug/unordered_set
+++ b/libstdc++-v3/include/debug/unordered_set
@@ -243,25 +243,24 @@ namespace __debug
return __ret;
}
- iterator
+ void
erase(const_iterator __it)
{
__glibcxx_check_erase(__it);
__it._M_invalidate();
- return iterator(_Base::erase(__it.base()), this);
+ _Base::erase(__it.base());
}
- iterator
+ void
erase(const_iterator __first, const_iterator __last)
{
__glibcxx_check_erase_range(__first, __last);
for (const_iterator __tmp = __first; __tmp != __last;)
- {
- const_iterator __victim = __tmp++;
- __victim._M_invalidate();
- }
- return iterator(_Base::erase(__first.base(),
- __last.base()), this);
+ {
+ const_iterator __victim = __tmp++;
+ __victim._M_invalidate();
+ }
+ _Base::erase(__first.base(), __last.base());
}
_Base&
@@ -478,25 +477,24 @@ namespace __debug
return __ret;
}
- iterator
+ void
erase(const_iterator __it)
{
__glibcxx_check_erase(__it);
__it._M_invalidate();
- return iterator(_Base::erase(__it.base()), this);
+ _Base::erase(__it.base());
}
- iterator
+ void
erase(const_iterator __first, const_iterator __last)
{
__glibcxx_check_erase_range(__first, __last);
for (const_iterator __tmp = __first; __tmp != __last;)
- {
- const_iterator __victim = __tmp++;
- __victim._M_invalidate();
- }
- return iterator(_Base::erase(__first.base(),
- __last.base()), this);
+ {
+ const_iterator __victim = __tmp++;
+ __victim._M_invalidate();
+ }
+ _Base::erase(__first.base(), __last.base());
}
_Base&
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
index f9b74e0..70fb41e 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/1.cc
@@ -113,7 +113,7 @@ void test01()
VERIFY( m1.size() == 2 );
VERIFY( ++it10 == m1.end() );
- VERIFY( m1.erase(m1.begin()) != m1.end() );
+ m1.erase(m1.begin());
VERIFY( m1.size() == 1 );
VERIFY( m1.begin() == it11 );
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
index 87ab474..759602b 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/erase/24061-map.cc
@@ -51,10 +51,8 @@ void test01()
++it1;
iterator it2 = it1;
++it2;
- iterator it3 = m1.erase(it1);
+ m1.erase(it1);
VERIFY( m1.size() == 9 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
iterator it4 = m1.begin();
++it4;
@@ -63,10 +61,8 @@ void test01()
iterator it5 = it4;
++it5;
++it5;
- iterator it6 = m1.erase(it4, it5);
+ m1.erase(it4, it5);
VERIFY( m1.size() == 7 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
const_iterator it7 = m1.begin();
++it7;
@@ -74,10 +70,8 @@ void test01()
++it7;
const_iterator it8 = it7;
++it8;
- const_iterator it9 = m1.erase(it7);
+ m1.erase(it7);
VERIFY( m1.size() == 6 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
const_iterator it10 = m1.begin();
++it10;
@@ -86,16 +80,11 @@ void test01()
++it11;
++it11;
++it11;
- const_iterator it12 = m1.erase(it10, it11);
+ m1.erase(it10, it11);
VERIFY( m1.size() == 2 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
- VERIFY( ++it12 == m1.end() );
- iterator it13 = m1.erase(m1.begin(), m1.end());
+ m1.erase(m1.begin(), m1.end());
VERIFY( m1.size() == 0 );
- VERIFY( it13 == it12 );
- VERIFY( it13 == m1.begin() );
}
int main()
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
index 0aa1a07..0e60b8a 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/1.cc
@@ -113,7 +113,7 @@ void test01()
VERIFY( mm1.size() == 2 );
VERIFY( ++it10 == mm1.end() );
- VERIFY( mm1.erase(mm1.begin()) != mm1.end() );
+ mm1.erase(mm1.begin());
VERIFY( mm1.size() == 1 );
VERIFY( mm1.begin() == it11 );
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
index 545d082..0fe4eee 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/erase/24061-multimap.cc
@@ -55,10 +55,8 @@ void test01()
++it1;
iterator it2 = it1;
++it2;
- iterator it3 = mm1.erase(it1);
+ mm1.erase(it1);
VERIFY( mm1.size() == 12 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
iterator it4 = mm1.begin();
++it4;
@@ -67,10 +65,8 @@ void test01()
iterator it5 = it4;
++it5;
++it5;
- iterator it6 = mm1.erase(it4, it5);
+ mm1.erase(it4, it5);
VERIFY( mm1.size() == 10 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
const_iterator it7 = mm1.begin();
++it7;
@@ -78,10 +74,8 @@ void test01()
++it7;
const_iterator it8 = it7;
++it8;
- const_iterator it9 = mm1.erase(it7);
+ mm1.erase(it7);
VERIFY( mm1.size() == 9 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
const_iterator it10 = mm1.begin();
++it10;
@@ -90,15 +84,11 @@ void test01()
++it11;
++it11;
++it11;
- const_iterator it12 = mm1.erase(it10, it11);
+ mm1.erase(it10, it11);
VERIFY( mm1.size() == 5 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
- iterator it13 = mm1.erase(mm1.begin(), mm1.end());
+ mm1.erase(mm1.begin(), mm1.end());
VERIFY( mm1.size() == 0 );
- VERIFY( it13 == mm1.end() );
- VERIFY( it13 == mm1.begin() );
}
int main()
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
index 9951838..fbd8899 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/1.cc
@@ -112,7 +112,7 @@ void test01()
VERIFY( ms1.size() == 2 );
VERIFY( ++it10 == ms1.end() );
- VERIFY( ms1.erase(ms1.begin()) != ms1.end() );
+ ms1.erase(ms1.begin());
VERIFY( ms1.size() == 1 );
VERIFY( ms1.begin() == it11 );
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
index c5eea6e..568862f 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/erase/24061-multiset.cc
@@ -54,10 +54,8 @@ void test01()
++it1;
iterator it2 = it1;
++it2;
- iterator it3 = ms1.erase(it1);
+ ms1.erase(it1);
VERIFY( ms1.size() == 12 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
iterator it4 = ms1.begin();
++it4;
@@ -66,10 +64,8 @@ void test01()
iterator it5 = it4;
++it5;
++it5;
- iterator it6 = ms1.erase(it4, it5);
+ ms1.erase(it4, it5);
VERIFY( ms1.size() == 10 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
const_iterator it7 = ms1.begin();
++it7;
@@ -77,10 +73,8 @@ void test01()
++it7;
const_iterator it8 = it7;
++it8;
- const_iterator it9 = ms1.erase(it7);
+ ms1.erase(it7);
VERIFY( ms1.size() == 9 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
const_iterator it10 = ms1.begin();
++it10;
@@ -89,15 +83,11 @@ void test01()
++it11;
++it11;
++it11;
- const_iterator it12 = ms1.erase(it10, it11);
+ ms1.erase(it10, it11);
VERIFY( ms1.size() == 5 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
- iterator it13 = ms1.erase(ms1.begin(), ms1.end());
+ ms1.erase(ms1.begin(), ms1.end());
VERIFY( ms1.size() == 0 );
- VERIFY( it13 == ms1.end() );
- VERIFY( it13 == ms1.begin() );
}
int main()
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
index 8f59773..9bfa771 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/1.cc
@@ -112,7 +112,7 @@ void test01()
VERIFY( s1.size() == 2 );
VERIFY( ++it10 == s1.end() );
- VERIFY( s1.erase(s1.begin()) != s1.end() );
+ s1.erase(s1.begin());
VERIFY( s1.size() == 1 );
VERIFY( s1.begin() == it11 );
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
index b4cdde6..6d89208 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/erase/24061-set.cc
@@ -50,10 +50,8 @@ void test01()
++it1;
iterator it2 = it1;
++it2;
- iterator it3 = s1.erase(it1);
+ s1.erase(it1);
VERIFY( s1.size() == 9 );
- VERIFY( it3 == it2 );
- VERIFY( *it3 == *it2 );
iterator it4 = s1.begin();
++it4;
@@ -62,10 +60,8 @@ void test01()
iterator it5 = it4;
++it5;
++it5;
- iterator it6 = s1.erase(it4, it5);
+ s1.erase(it4, it5);
VERIFY( s1.size() == 7 );
- VERIFY( it6 == it5 );
- VERIFY( *it6 == *it5 );
const_iterator it7 = s1.begin();
++it7;
@@ -73,10 +69,8 @@ void test01()
++it7;
const_iterator it8 = it7;
++it8;
- const_iterator it9 = s1.erase(it7);
+ s1.erase(it7);
VERIFY( s1.size() == 6 );
- VERIFY( it9 == it8 );
- VERIFY( *it9 == *it8 );
const_iterator it10 = s1.begin();
++it10;
@@ -85,16 +79,11 @@ void test01()
++it11;
++it11;
++it11;
- const_iterator it12 = s1.erase(it10, it11);
+ s1.erase(it10, it11);
VERIFY( s1.size() == 2 );
- VERIFY( it12 == it11 );
- VERIFY( *it12 == *it11 );
- VERIFY( ++it12 == s1.end() );
- iterator it13 = s1.erase(s1.begin(), s1.end());
+ s1.erase(s1.begin(), s1.end());
VERIFY( s1.size() == 0 );
- VERIFY( it13 == s1.end() );
- VERIFY( it13 == s1.begin() );
}
int main()
diff --git a/libstdc++-v3/testsuite/util/exception/safety.h b/libstdc++-v3/testsuite/util/exception/safety.h
index 23862bc..2bd1ed9 100644
--- a/libstdc++-v3/testsuite/util/exception/safety.h
+++ b/libstdc++-v3/testsuite/util/exception/safety.h
@@ -285,9 +285,9 @@ namespace __gnu_test
typedef typename container_type::iterator iterator;
typedef typename container_type::const_iterator const_iterator;
- iterator (container_type::* _F_erase_point)(const_iterator);
- iterator (container_type::* _F_erase_range)(const_iterator,
- const_iterator);
+ void (container_type::* _F_erase_point)(const_iterator);
+ void (container_type::* _F_erase_range)(const_iterator,
+ const_iterator);
erase_base()
: _F_erase_point(&container_type::erase),
@@ -304,9 +304,9 @@ namespace __gnu_test
typedef typename container_type::iterator iterator;
typedef typename container_type::const_iterator const_iterator;
- iterator (container_type::* _F_erase_point)(const_iterator);
- iterator (container_type::* _F_erase_range)(const_iterator,
- const_iterator);
+ void (container_type::* _F_erase_point)(const_iterator);
+ void (container_type::* _F_erase_range)(const_iterator,
+ const_iterator);
erase_base()
: _F_erase_point(&container_type::erase),
@@ -321,9 +321,9 @@ namespace __gnu_test
typedef typename container_type::iterator iterator;
typedef typename container_type::const_iterator const_iterator;
- iterator (container_type::* _F_erase_point)(const_iterator);
- iterator (container_type::* _F_erase_range)(const_iterator,
- const_iterator);
+ void (container_type::* _F_erase_point)(const_iterator);
+ void (container_type::* _F_erase_range)(const_iterator,
+ const_iterator);
erase_base()
: _F_erase_point(&container_type::erase),
@@ -338,9 +338,9 @@ namespace __gnu_test
typedef typename container_type::iterator iterator;
typedef typename container_type::const_iterator const_iterator;
- iterator (container_type::* _F_erase_point)(const_iterator);
- iterator (container_type::* _F_erase_range)(const_iterator,
- const_iterator);
+ void (container_type::* _F_erase_point)(const_iterator);
+ void (container_type::* _F_erase_range)(const_iterator,
+ const_iterator);
erase_base()
: _F_erase_point(&container_type::erase),