summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-17 17:44:09 +0000
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-17 17:44:09 +0000
commit74a45838f09a1663d2e9c224170d2efcf3f53275 (patch)
tree544677612baf850b04629e50693e286238bdc5da
parentaf904a63f13be1c066c0b64b021aebf54cbf4661 (diff)
downloadppe42-gcc-74a45838f09a1663d2e9c224170d2efcf3f53275.tar.gz
ppe42-gcc-74a45838f09a1663d2e9c224170d2efcf3f53275.zip
2007-10-17 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_iterator.h (back_insert_iterator<>::operator= (typename _Container::value_type&&), front_insert_iterator<>:: operator=(typename _Container::value_type&&), insert_iterator<>:: operator=(typename _Container::value_type&&)): Add. * include/bits/stl_iterator.h (insert_iterator<>::operator= (typename _Container::const_reference)): Fix typo in signature. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129413 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/ChangeLog10
-rw-r--r--libstdc++-v3/include/bits/stl_iterator.h31
2 files changed, 40 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 754918672b5..05a21602909 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,5 +1,15 @@
2007-10-17 Paolo Carlini <pcarlini@suse.de>
+ * include/bits/stl_iterator.h (back_insert_iterator<>::operator=
+ (typename _Container::value_type&&), front_insert_iterator<>::
+ operator=(typename _Container::value_type&&), insert_iterator<>::
+ operator=(typename _Container::value_type&&)): Add.
+
+ * include/bits/stl_iterator.h (insert_iterator<>::operator=
+ (typename _Container::const_reference)): Fix typo in signature.
+
+2007-10-17 Paolo Carlini <pcarlini@suse.de>
+
* include/tr1_impl/array: Correct macro guarding cbegin, cend,
crbegin, crend.
* include/tr1_impl/hashtable: Likewise.
diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h
index ac561eee351..280f7028720 100644
--- a/libstdc++-v3/include/bits/stl_iterator.h
+++ b/libstdc++-v3/include/bits/stl_iterator.h
@@ -68,6 +68,7 @@
#include <bits/cpp_type_traits.h>
#include <ext/type_traits.h>
+#include <bits/stl_move.h>
_GLIBCXX_BEGIN_NAMESPACE(std)
@@ -414,6 +415,15 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
return *this;
}
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ back_insert_iterator&
+ operator=(typename _Container::value_type&& __value)
+ {
+ container->push_back(std::move(__value));
+ return *this;
+ }
+#endif
+
/// Simply returns *this.
back_insert_iterator&
operator*()
@@ -488,6 +498,15 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
return *this;
}
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ front_insert_iterator&
+ operator=(typename _Container::value_type&& __value)
+ {
+ container->push_front(std::move(__value));
+ return *this;
+ }
+#endif
+
/// Simply returns *this.
front_insert_iterator&
operator*()
@@ -577,13 +596,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
* @endcode
*/
insert_iterator&
- operator=(const typename _Container::const_reference __value)
+ operator=(typename _Container::const_reference __value)
{
iter = container->insert(iter, __value);
++iter;
return *this;
}
+#ifdef __GXX_EXPERIMENTAL_CXX0X__
+ insert_iterator&
+ operator=(typename _Container::value_type&& __value)
+ {
+ iter = container->insert(iter, std::move(__value));
+ ++iter;
+ return *this;
+ }
+#endif
+
/// Simply returns *this.
insert_iterator&
operator*()
OpenPOWER on IntegriCloud