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>>; })

Reply via email to