]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Do not use _GLIBCXX_MAKE_MOVE_ITERATOR for C++17
authorJonathan Wakely <jwakely@redhat.com>
Mon, 15 Sep 2025 13:49:13 +0000 (14:49 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 16 Sep 2025 09:57:36 +0000 (10:57 +0100)
The _GLIBCXX_MAKE_MOVE_ITERATOR macro is needed for code that needs to
compile as C++98, where it just produces the original iterator. In
std::uninitialized_move and std::uninitialized_move_n we can just call
std::make_move_iterator directly.

libstdc++-v3/ChangeLog:

* include/bits/stl_uninitialized.h (uninitialized_move)
(uninitialized_move_n): Replace _GLIBCXX_MAKE_MOVE_ITERATOR with
std::make_move_iterator.

Reviewed-by: Patrick Palka <ppalka@redhat.com>
libstdc++-v3/include/bits/stl_uninitialized.h

index 351c3a17457fc46c58392a125709e3af5297def7..0398b65fa14036fc9bad3282c32c0aba613daf16 100644 (file)
@@ -1265,9 +1265,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     uninitialized_move(_InputIterator __first, _InputIterator __last,
                       _ForwardIterator __result)
     {
-      return std::uninitialized_copy
-       (_GLIBCXX_MAKE_MOVE_ITERATOR(__first),
-        _GLIBCXX_MAKE_MOVE_ITERATOR(__last), __result);
+      return std::uninitialized_copy(std::make_move_iterator(__first),
+                                    std::make_move_iterator(__last),
+                                    __result);
     }
 
   /**
@@ -1284,9 +1284,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     uninitialized_move_n(_InputIterator __first, _Size __count,
                         _ForwardIterator __result)
     {
-      auto __res = std::__uninitialized_copy_n_pair
-       (_GLIBCXX_MAKE_MOVE_ITERATOR(__first),
-        __count, __result);
+      auto __res
+       = std::__uninitialized_copy_n_pair(std::make_move_iterator(__first),
+                                          __count, __result);
       return {__res.first.base(), __res.second};
     }
 #endif // __glibcxx_raw_memory_algorithms