https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119415
--- Comment #15 from Jonathan Wakely <redi at gcc dot gnu.org> ---
template<typename _Iter>
using __iter_category_t
= typename iterator_traits<_Iter>::iterator_category;
template<typename _InIter>
using _RequireInputIter =
__enable_if_t<is_convertible<__iter_category_t<_InIter>,
input_iterator_tag>::value>;
So it can be shortened to:
else if constexpr (ranges::common_range<_Rg>
&& requires { typename _RequireInputIterator<ranges::iterator_t<_Rg>>; })