From: Jonathan Wakely Date: Mon, 15 Sep 2025 13:49:13 +0000 (+0100) Subject: libstdc++: Do not use _GLIBCXX_MAKE_MOVE_ITERATOR for C++17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0810be83c1a9c6789920fcb0a4d98a3ddb64dd74;p=thirdparty%2Fgcc.git libstdc++: Do not use _GLIBCXX_MAKE_MOVE_ITERATOR for C++17 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 --- diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h index 351c3a17457..0398b65fa14 100644 --- a/libstdc++-v3/include/bits/stl_uninitialized.h +++ b/libstdc++-v3/include/bits/stl_uninitialized.h @@ -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