On Fri, 18 Jun 2021 at 04:59, Patrick Palka via Libstdc++ <libstd...@gcc.gnu.org> wrote: > > libstdc++-v3/ChangeLog: > > * include/bits/stl_iterator.h > (__detail::__common_iter_use_postfix_proxy): Add > move_constructible constraint as LWG 3546. > (common_iterator::__postfix_proxy): Adjust initializer of > _M_keep as per LWG 3546.
OK, thanks > --- > libstdc++-v3/include/bits/stl_iterator.h | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/libstdc++-v3/include/bits/stl_iterator.h > b/libstdc++-v3/include/bits/stl_iterator.h > index 6ec046b597b..7fe727d8093 100644 > --- a/libstdc++-v3/include/bits/stl_iterator.h > +++ b/libstdc++-v3/include/bits/stl_iterator.h > @@ -1672,7 +1672,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > template<typename _It> > concept __common_iter_use_postfix_proxy > = (!requires (_It& __i) { { *__i++ } -> __can_reference; }) > - && constructible_from<iter_value_t<_It>, iter_reference_t<_It>>; > + && constructible_from<iter_value_t<_It>, iter_reference_t<_It>> > + && move_constructible<iter_value_t<_It>>; > } // namespace __detail > > /// An iterator/sentinel adaptor for representing a non-common range. > @@ -1715,7 +1716,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > iter_value_t<_It> _M_keep; > > __postfix_proxy(iter_reference_t<_It>&& __x) > - : _M_keep(std::move(__x)) { } > + : _M_keep(std::forward<iter_reference_t<_It>>(__x)) { } > > friend class common_iterator; > > -- > 2.32.0.93.g670b81a890 >