diff options
| author | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-17 17:44:09 +0000 |
|---|---|---|
| committer | paolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-17 17:44:09 +0000 |
| commit | 74a45838f09a1663d2e9c224170d2efcf3f53275 (patch) | |
| tree | 544677612baf850b04629e50693e286238bdc5da | |
| parent | af904a63f13be1c066c0b64b021aebf54cbf4661 (diff) | |
| download | ppe42-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/ChangeLog | 10 | ||||
| -rw-r--r-- | libstdc++-v3/include/bits/stl_iterator.h | 31 |
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*() |

