Index: libcxx/docs/Status/Cxx20Issues.csv =================================================================== --- libcxx/docs/Status/Cxx20Issues.csv +++ libcxx/docs/Status/Cxx20Issues.csv @@ -291,7 +291,7 @@ "`3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","Prague","","","|ranges|" "`3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","Prague","","","|ranges|" "`3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","Prague","","","|ranges|" -"`3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","Prague","","","|ranges|" +"`3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","Prague","|Complete|","14.0","|ranges|" "`3393 `__","Missing/incorrect feature test macro for coroutines","Prague","|Complete|","14.0" "`3395 `__","Definition for three-way comparison needs to be updated (US 152)","Prague","","","|spaceship|" "`3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","Prague","","" Index: libcxx/include/__iterator/move_iterator.h =================================================================== --- libcxx/include/__iterator/move_iterator.h +++ libcxx/include/__iterator/move_iterator.h @@ -12,6 +12,7 @@ #include <__config> #include <__iterator/iterator_traits.h> +#include <__utility/move.h> #include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) @@ -53,7 +54,7 @@ move_iterator() : __current_() {} _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_AFTER_CXX14 - explicit move_iterator(_Iter __i) : __current_(__i) {} + explicit move_iterator(_Iter __i) : __current_(_VSTD::move(__i)) {} template ::value && is_convertible::value @@ -176,7 +177,7 @@ move_iterator<_Iter> make_move_iterator(_Iter __i) { - return move_iterator<_Iter>(__i); + return move_iterator<_Iter>(_VSTD::move(__i)); } _LIBCPP_END_NAMESPACE_STD