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

--- Comment #5 from 康桓瑋 <hewillk at gmail dot com> ---
(In reply to Patrick Palka from comment #4)
> Fixed, thanks very much for the bug reports.

Hey Patrick, thanks for the prompt fix. 
However, I think there may be some issues with this fix, consider:

  struct F {
    F() = default;
    F(const F&) = delete;
    void operator()() = delete;
  };
  auto r = std::views::zip_transform(F{});

There are two problems here, the first less important one is that F is not
callable, so views::empty<...> in the function body would be a hard error; the
second one is that when empty pack, [range.zip.transform.overview] explicitly
requires that F must be copy_constructible (this should be move_constructible
because of p2494, I have submitted LWG for this), so even if F provides
operator(), we still need to reject the above.

Reply via email to