]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Implement LWG 3533 changes to foo_view::iterator::base()
authorPatrick Palka <ppalka@redhat.com>
Thu, 6 May 2021 13:11:44 +0000 (09:11 -0400)
committerPatrick Palka <ppalka@redhat.com>
Thu, 10 Jun 2021 18:58:53 +0000 (14:58 -0400)
libstdc++-v3/ChangeLog:

* include/std/ranges (filter_view::_Iterator::base): Make the
const& overload unconstrained and return a const reference as
per LWG 3533.  Make unconditionally noexcept.
(transform_view::_Iterator::base): Likewise.
(elements_view::_Iterator::base): Likewise.

(cherry picked from commit eb1aa9ad2afbcd8f3e939310d5785ff8563a8c5c)

libstdc++-v3/include/std/ranges

index 265e109bc7e53fe845235755ee7c8f9a13b125ac..1f4093a17b5725793c4bd2b21f66580ad55e9bea 100644 (file)
@@ -1263,9 +1263,8 @@ namespace views::__adaptor
            _M_parent(__parent)
        { }
 
-       constexpr _Vp_iter
-       base() const &
-         requires copyable<_Vp_iter>
+       constexpr const _Vp_iter&
+       base() const & noexcept
        { return _M_current; }
 
        constexpr _Vp_iter
@@ -1531,9 +1530,8 @@ namespace views::__adaptor
            : _M_current(std::move(__i._M_current)), _M_parent(__i._M_parent)
          { }
 
-         constexpr _Base_iter
-         base() const &
-           requires copyable<_Base_iter>
+         constexpr const _Base_iter&
+         base() const & noexcept
          { return _M_current; }
 
          constexpr _Base_iter
@@ -3407,8 +3405,8 @@ namespace views::__adaptor
        : _M_base(std::move(base))
       { }
 
-      constexpr _Vp
-      base() const& requires copy_constructible<_Vp>
+      constexpr const _Vp&
+      base() const & noexcept
       { return _M_base; }
 
       constexpr _Vp