These constraints are already present on the template we're partially specilalizing for.
[ This was recently fixed editorially in https://github.com/cplusplus/draft/pull/4519 ] Tested on x86_64-pc-linux-gnu, does this look OK for trunk? libstdc++-v3/ChangeLog: * include/bits/ranges_util.h (enable_borrowed_range<subrange>): Remove constraints on this partial specialization. * include/std/ranges (enable_borrowed_range<iota_view>): Likewise. --- libstdc++-v3/include/bits/ranges_util.h | 3 +-- libstdc++-v3/include/std/ranges | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/include/bits/ranges_util.h b/libstdc++-v3/include/bits/ranges_util.h index 589886eb157..b73fc121e0f 100644 --- a/libstdc++-v3/include/bits/ranges_util.h +++ b/libstdc++-v3/include/bits/ranges_util.h @@ -381,8 +381,7 @@ namespace ranges return __r.end(); } - template<input_or_output_iterator _It, sentinel_for<_It> _Sent, - subrange_kind _Kind> + template<typename _It, typename _Sent, subrange_kind _Kind> inline constexpr bool enable_borrowed_range<subrange<_It, _Sent, _Kind>> = true; diff --git a/libstdc++-v3/include/std/ranges b/libstdc++-v3/include/std/ranges index f21e08a36e3..2305bd200a5 100644 --- a/libstdc++-v3/include/std/ranges +++ b/libstdc++-v3/include/std/ranges @@ -586,7 +586,7 @@ namespace ranges == __detail::__is_signed_integer_like<_Bound>)) iota_view(_Winc, _Bound) -> iota_view<_Winc, _Bound>; - template<weakly_incrementable _Winc, semiregular _Bound> + template<typename _Winc, typename _Bound> inline constexpr bool enable_borrowed_range<iota_view<_Winc, _Bound>> = true; -- 2.31.1.442.g7e39198978