On Mon, May 17, 2021 at 11:46 AM Patrick Palka via Libstdc++
<libstd...@gcc.gnu.org> wrote:
>         constexpr void
>         _M_set(const _Range&, const iterator_t<_Range>& __it)
>         {
>           __glibcxx_assert(!_M_has_value());
> -         _M_iter = __it;
> +         this->_M_payload._M_payload._M_value = __it;
> +         this->_M_payload._M_engaged = true;
>         }
>        };

This part looks questionable - if we don't have a value then we can't
assign to a nonexistent object.

Also, I believe the offset partial specialization of _CachedPosition
needs a change to invalidate the source on move.

Reply via email to