Proposed resolution:
This wording is relative to N4958.
Modify [const.iterators.iterator], class template basic_const_iterator synopsis, as indicated:
namespace std { […] template<input_iterator Iterator> class basic_const_iterator { […]constexpr const Iterator& base() const & noexcept;constexpr Iterator base() &&;[…] }; }
Modify [const.iterators.ops] as indicated:
constexpr const Iterator& base() const & noexcept;
-4- Effects: Equivalent to: return current_;constexpr Iterator base() &&;
-5- Effects: Equivalent to: return std::move(current_);
Modify [range.as.const.view] as indicated:
namespace std::ranges { template<view V> requires input_range<V> class as_const_view : public view_interface<as_const_view<V>> { […]constexpr V base() const & requires copy_constructible<V> { return base_; }constexpr V base() && { return std::move(base_); }[…] }; }