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.