diff mbox series

[7/7] libstdc++: Reuse std::__assign_one in <bits/ranges_algobase.h>

Message ID 20241015142630.2148792-7-jwakely@redhat.com
State New
Headers show
Series [1/7] libstdc++: Refactor std::uninitialized_{copy, fill, fill_n} algos [PR68350] | expand

Commit Message

Jonathan Wakely Oct. 15, 2024, 2:20 p.m. UTC
Tested x86_64-linux.

-- >8 --

Use std::__assign_one instead of ranges::__assign_one. Adjust the uses,
because std::__assign_one has the arguments in the opposite order (the
same order as an assignment expression).

libstdc++-v3/ChangeLog:

	* include/bits/ranges_algobase.h (ranges::__assign_one): Remove.
	(__copy_or_move, __copy_or_move_backward): Use std::__assign_one
	instead of ranges::__assign_one.
---
 libstdc++-v3/include/bits/ranges_algobase.h | 22 ++++++---------------
 1 file changed, 6 insertions(+), 16 deletions(-)
diff mbox series

Patch

diff --git a/libstdc++-v3/include/bits/ranges_algobase.h b/libstdc++-v3/include/bits/ranges_algobase.h
index 0345ea850a4..df4e770e7a6 100644
--- a/libstdc++-v3/include/bits/ranges_algobase.h
+++ b/libstdc++-v3/include/bits/ranges_algobase.h
@@ -225,16 +225,6 @@  namespace ranges
 			      copy_backward_result<_Iter, _Out>>
     __copy_or_move_backward(_Iter __first, _Sent __last, _Out __result);
 
-  template<bool _IsMove, typename _Iter, typename _Out>
-    constexpr void
-    __assign_one(_Iter& __iter, _Out& __result)
-    {
-      if constexpr (_IsMove)
-	  *__result = std::move(*__iter);
-      else
-	  *__result = *__iter;
-    }
-
   template<bool _IsMove,
 	   input_iterator _Iter, sentinel_for<_Iter> _Sent,
 	   weakly_incrementable _Out>
@@ -294,14 +284,14 @@  namespace ranges
 		    __builtin_memmove(__result, __first,
 				      sizeof(_ValueTypeI) * __num);
 		  else if (__num == 1)
-		    ranges::__assign_one<_IsMove>(__first, __result);
+		    std::__assign_one<_IsMove>(__result, __first);
 		  return {__first + __num, __result + __num};
 		}
 	    }
 
 	  for (auto __n = __last - __first; __n > 0; --__n)
 	    {
-	      ranges::__assign_one<_IsMove>(__first, __result);
+	      std::__assign_one<_IsMove>(__result, __first);
 	      ++__first;
 	      ++__result;
 	    }
@@ -311,7 +301,7 @@  namespace ranges
 	{
 	  while (__first != __last)
 	    {
-	      ranges::__assign_one<_IsMove>(__first, __result);
+	      std::__assign_one<_IsMove>(__result, __first);
 	      ++__first;
 	      ++__result;
 	    }
@@ -423,7 +413,7 @@  namespace ranges
 		    __builtin_memmove(__result, __first,
 				      sizeof(_ValueTypeI) * __num);
 		  else if (__num == 1)
-		    ranges::__assign_one<_IsMove>(__first, __result);
+		    std::__assign_one<_IsMove>(__result, __first);
 		  return {__first + __num, __result};
 		}
 	    }
@@ -435,7 +425,7 @@  namespace ranges
 	    {
 	      --__tail;
 	      --__result;
-	      ranges::__assign_one<_IsMove>(__tail, __result);
+	      std::__assign_one<_IsMove>(__result, __tail);
 	    }
 	  return {std::move(__lasti), std::move(__result)};
 	}
@@ -448,7 +438,7 @@  namespace ranges
 	    {
 	      --__tail;
 	      --__result;
-	      ranges::__assign_one<_IsMove>(__tail, __result);
+	      std::__assign_one<_IsMove>(__result, __tail);
 	    }
 	  return {std::move(__lasti), std::move(__result)};
 	}