https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109111
Bug ID: 109111
Summary: Definition of repeat_view::_Iterator has wrong
template-head
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: rs2740 at gmail dot com
Target Milestone: ---
In <ranges>:
template<copy_constructible _Tp, semiregular _Bound = unreachable_sentinel_t>
requires (is_object_v<_Tp> && same_as<_Tp, remove_cv_t<_Tp>>
&& (__detail::__is_integer_like<_Bound> || same_as<_Bound,
unreachable_sentinel_t>))
class repeat_view : /* ... */
template<copy_constructible _Tp, semiregular _Bound>
requires __detail::__is_integer_like<_Bound> || same_as<_Bound,
unreachable_sentinel_t>
class repeat_view<_Tp, _Bound>::_Iterator
The requires-clause should match.
Clang trunk diagnoses this (but not GCC, so there's probably a compiler bug
here too).