aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2007-11-09 17:18:10 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-11-09 17:18:10 +0000
commitcbc6c888f94488419c4d342793a1f32fe1364284 (patch)
treedfa75ee734548fc8f37c3111b697791a957eb4f3 /libstdc++-v3/include
parentac4a7e21ca926ec25d5224efb2094d952436496a (diff)
downloadgcc-cbc6c888f94488419c4d342793a1f32fe1364284.zip
gcc-cbc6c888f94488419c4d342793a1f32fe1364284.tar.gz
gcc-cbc6c888f94488419c4d342793a1f32fe1364284.tar.bz2
stl_deque.h (deque<>::operator=(deque&&)): Implement resolution of DR 675, call clear first.
2007-11-09 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_deque.h (deque<>::operator=(deque&&)): Implement resolution of DR 675, call clear first. * include/bits/stl_list.h (list<>::operator=(list&&)): Likewise. * include/bits/stl_bvector.h (vector<bool>::operator=(vector&&)): Likewise. * include/bits/stl_vector.h (vector<>::operator=(vector&&)): Likewise. * include/bits/stl_map.h (map<>::operator=(map&&)): Likewise. * include/bits/stl_multimap.h (multimap<>::operator=(multimap&&)): Likewise. * include/bits/stl_multiset.h (multiset<>::operator=(multiset&&)): Likewise. * include/bits/stl_set.h (set<>::operator=(set&&)): Likewise. * include/debug/map.h (map<>::operator=(map&&)): Likewise. * include/debug/set.h (set<>::operator=(set&&)): Likewise. * include/debug/multimap.h (multimap<>::operator=(multimap&&)): Likewise. * include/debug/multiset.h (multiset<>::operator=(multiset&&)): Likewise. * include/debug/deque (deque<>::operator=(deque&&)): Likewise. * include/debug/list (list<>::operator=(list&&)): Likewise. * include/debug/vector (vector<>::operator=(vector&&)): Likewise. * testsuite/23_containers/multimap/moveable.cc: Adjust. * testsuite/23_containers/multiset/moveable.cc: Likewise. * testsuite/23_containers/set/moveable.cc: Likewise. * testsuite/23_containers/map/moveable.cc: Likewise. * testsuite/20_util/pair/moveable.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/assign_neg.cc: Adjust dg-error line numbers. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Likewise. From-SVN: r130051
Diffstat (limited to 'libstdc++-v3/include')
-rw-r--r--libstdc++-v3/include/bits/stl_bvector.h4
-rw-r--r--libstdc++-v3/include/bits/stl_deque.h2
-rw-r--r--libstdc++-v3/include/bits/stl_list.h2
-rw-r--r--libstdc++-v3/include/bits/stl_map.h2
-rw-r--r--libstdc++-v3/include/bits/stl_multimap.h2
-rw-r--r--libstdc++-v3/include/bits/stl_multiset.h2
-rw-r--r--libstdc++-v3/include/bits/stl_set.h2
-rw-r--r--libstdc++-v3/include/bits/stl_vector.h4
-rw-r--r--libstdc++-v3/include/debug/deque2
-rw-r--r--libstdc++-v3/include/debug/list2
-rw-r--r--libstdc++-v3/include/debug/map.h2
-rw-r--r--libstdc++-v3/include/debug/multimap.h2
-rw-r--r--libstdc++-v3/include/debug/multiset.h2
-rw-r--r--libstdc++-v3/include/debug/set.h2
-rw-r--r--libstdc++-v3/include/debug/vector2
15 files changed, 32 insertions, 2 deletions
diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index cb99b22..255e00b 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -560,7 +560,9 @@ template<typename _Alloc>
#ifdef __GXX_EXPERIMENTAL_CXX0X__
vector&
operator=(vector&& __x)
- {
+ {
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/bits/stl_deque.h b/libstdc++-v3/include/bits/stl_deque.h
index 356cff2..ae01eae 100644
--- a/libstdc++-v3/include/bits/stl_deque.h
+++ b/libstdc++-v3/include/bits/stl_deque.h
@@ -808,6 +808,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
deque&
operator=(deque&& __x)
{
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h
index 4de31d8..41b84f3 100644
--- a/libstdc++-v3/include/bits/stl_list.h
+++ b/libstdc++-v3/include/bits/stl_list.h
@@ -582,6 +582,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
list&
operator=(list&& __x)
{
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h
index bc9d13be..6426440 100644
--- a/libstdc++-v3/include/bits/stl_map.h
+++ b/libstdc++-v3/include/bits/stl_map.h
@@ -255,6 +255,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
map&
operator=(map&& __x)
{
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/bits/stl_multimap.h b/libstdc++-v3/include/bits/stl_multimap.h
index a280692..76d6b47 100644
--- a/libstdc++-v3/include/bits/stl_multimap.h
+++ b/libstdc++-v3/include/bits/stl_multimap.h
@@ -253,6 +253,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
multimap&
operator=(multimap&& __x)
{
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/bits/stl_multiset.h b/libstdc++-v3/include/bits/stl_multiset.h
index 60d4d9c..5c897bd 100644
--- a/libstdc++-v3/include/bits/stl_multiset.h
+++ b/libstdc++-v3/include/bits/stl_multiset.h
@@ -225,6 +225,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
multiset&
operator=(multiset&& __x)
{
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h
index d260156..3eb4b26 100644
--- a/libstdc++-v3/include/bits/stl_set.h
+++ b/libstdc++-v3/include/bits/stl_set.h
@@ -232,6 +232,8 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
set&
operator=(set&& __x)
{
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h
index bf2cc27..0e5e6c1 100644
--- a/libstdc++-v3/include/bits/stl_vector.h
+++ b/libstdc++-v3/include/bits/stl_vector.h
@@ -325,7 +325,9 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D)
*/
vector&
operator=(vector&& __x)
- {
+ {
+ // NB: DR 675.
+ this->clear();
this->swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque
index 6571d15..8d3bf83 100644
--- a/libstdc++-v3/include/debug/deque
+++ b/libstdc++-v3/include/debug/deque
@@ -110,6 +110,8 @@ namespace __debug
deque&
operator=(deque&& __x)
{
+ // NB: DR 675.
+ clear();
swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list
index 7174334..9e78fc9 100644
--- a/libstdc++-v3/include/debug/list
+++ b/libstdc++-v3/include/debug/list
@@ -139,6 +139,8 @@ namespace __debug
list&
operator=(list&& __x)
{
+ // NB: DR 675.
+ clear();
swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/debug/map.h b/libstdc++-v3/include/debug/map.h
index 671e1f8..1657564 100644
--- a/libstdc++-v3/include/debug/map.h
+++ b/libstdc++-v3/include/debug/map.h
@@ -114,6 +114,8 @@ namespace __debug
map&
operator=(map&& __x)
{
+ // NB: DR 675.
+ clear();
swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/debug/multimap.h b/libstdc++-v3/include/debug/multimap.h
index 1dd4de8..72f4411 100644
--- a/libstdc++-v3/include/debug/multimap.h
+++ b/libstdc++-v3/include/debug/multimap.h
@@ -115,6 +115,8 @@ namespace __debug
multimap&
operator=(multimap&& __x)
{
+ // NB: DR 675.
+ clear();
swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/debug/multiset.h b/libstdc++-v3/include/debug/multiset.h
index 7c58db1..ffe5b51 100644
--- a/libstdc++-v3/include/debug/multiset.h
+++ b/libstdc++-v3/include/debug/multiset.h
@@ -112,6 +112,8 @@ namespace __debug
multiset&
operator=(multiset&& __x)
{
+ // NB: DR 675.
+ clear();
swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/debug/set.h b/libstdc++-v3/include/debug/set.h
index bebc34c..3115610 100644
--- a/libstdc++-v3/include/debug/set.h
+++ b/libstdc++-v3/include/debug/set.h
@@ -112,6 +112,8 @@ namespace __debug
set&
operator=(set&& __x)
{
+ // NB: DR 675.
+ clear();
swap(__x);
return *this;
}
diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector
index c5e4d12..8890ab9 100644
--- a/libstdc++-v3/include/debug/vector
+++ b/libstdc++-v3/include/debug/vector
@@ -123,6 +123,8 @@ namespace __debug
vector&
operator=(vector&& __x)
{
+ // NB: DR 675.
+ clear();
swap(__x);
return *this;
}