https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119888
Bug ID: 119888 Summary: GCC 15.x regression: std::string_view as template parameter incorrectly decays to char const* Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: brunopitrus at hotmail dot com Target Milestone: --- Code (found in Chromium): #include<algorithm> #include<functional> #include<string_view> template <typename Range, typename Proj = std::identity> requires std::ranges::sized_range<Range> && std::ranges::input_range<Range> && std::indirectly_unary_invocable<Proj, std::ranges::iterator_t<Range>> auto ToVector(Range&& range, Proj proj = {}) { using ProjectedType = std::projected<std::ranges::iterator_t<Range>, Proj>::value_type; std::vector<ProjectedType> container; container.reserve(std::ranges::size(range)); std::ranges::transform(std::forward<Range>(range), std::back_inserter(container), std::move(proj)); return container; } auto bob(std::string_view str) { return ToVector(str); } Compiles fine with 14.2. See it on godbolt: https://godbolt.org/z/z3Kv4vbqq