https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119962

--- Comment #4 from 康桓瑋 <hewillk at gmail dot com> ---
(In reply to Andrew Pinski from comment #2)
> https://eel.is/c++draft/range.lazy.split.outer
> 
> 
> Testcase from godbolt:
> ```
> #include <ranges>
> 
> struct I {
>   int x;
>   using difference_type = std::ptrdiff_t;
>   using value_type = int;
>   constexpr I& operator++() { return *this; }
>   constexpr value_type operator*() const { return {}; }
>   constexpr I operator++(int) { return *this; }
>   constexpr bool operator==(const I&) const = default;
> };
> 
> int main() {
>   constexpr std::ranges::subrange s = {I{}, I{4}};
>   auto split = s | std::views::lazy_split(0);
>   constexpr decltype(split.begin()) it;
> }
> 
> ```
> 
> Confirmed.

That case was made when I was trying something else. Here is much simpler:

#include <ranges>

constexpr
decltype(
  std::views::lazy_split(std::views::single(0), 0).begin()
) it;

https://godbolt.org/z/rMhGsPz6x

Reply via email to