https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104465
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- But the reason that it accepts the argument is that it's an lvalue. You tested std::ranges::viewable_range<std::vector<std::string>> but you should have tested std::ranges::viewable_range<std::vector<std::string>&>.