From 4c65085391c06df2a7b1acb4767e63aee6763d2c Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 31 Jul 2009 22:26:32 -0400 Subject: forward_list.h (splice_after): Use forward. * include/bits/forward_list.h (splice_after): Use forward. (merge): Likewise. * include/bits/stl_iterator.h (move_iterator::operator*): Use move. (move_iterator::operator[]): Use move. * include/bits/stl_list.h (insert): Use move. * include/std/thread (_Callable constructor): Use forward. * include/std/tuple: Don't specify explicit template args to move. From-SVN: r150326 --- libstdc++-v3/include/bits/forward_list.h | 7 +++++-- libstdc++-v3/include/bits/stl_iterator.h | 4 ++-- libstdc++-v3/include/bits/stl_list.h | 10 +++++++++- 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'libstdc++-v3/include/bits') diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h index 724d87b..5158f2d 100644 --- a/libstdc++-v3/include/bits/forward_list.h +++ b/libstdc++-v3/include/bits/forward_list.h @@ -1057,7 +1057,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std) void splice_after(const_iterator __pos, forward_list&& __list, const_iterator __it) - { this->splice_after(__pos, __list, __it, __it._M_next()); } + { + this->splice_after(__pos, std::forward(__list), + __it, __it._M_next()); + } /** * @brief Insert range from another %forward_list. @@ -1146,7 +1149,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) */ void merge(forward_list&& __list) - { this->merge(__list, std::less<_Tp>()); } + { this->merge(std::forward(__list), std::less<_Tp>()); } /** * @brief Merge sorted lists according to comparison function. diff --git a/libstdc++-v3/include/bits/stl_iterator.h b/libstdc++-v3/include/bits/stl_iterator.h index 129552f..eb72900 100644 --- a/libstdc++-v3/include/bits/stl_iterator.h +++ b/libstdc++-v3/include/bits/stl_iterator.h @@ -913,7 +913,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) reference operator*() const - { return *_M_current; } + { return std::move(*_M_current); } pointer operator->() const @@ -973,7 +973,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) reference operator[](difference_type __n) const - { return _M_current[__n]; } + { return std::move(_M_current[__n]); } }; template diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index f758bae..2a6e58f 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -1027,7 +1027,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) insert(iterator __position, size_type __n, const value_type& __x) { list __tmp(__n, __x, _M_get_Node_allocator()); - splice(__position, __tmp); +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + splice(__position, std::move(__tmp)); +#else + splice(__position, __tmp); +#endif } /** @@ -1049,7 +1053,11 @@ _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_D) _InputIterator __last) { list __tmp(__first, __last, _M_get_Node_allocator()); +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + splice(__position, std::move(__tmp)); +#else splice(__position, __tmp); +#endif } /** -- cgit v1.1