https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111031
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed| |2023-08-15 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> --- This seems to be a more interesting case of PR105644 where the requires-expr inside the pack expansion also uses the pack within a nested pack expansion. A workaround is to factor out the requires-expr from the pack expansion, e.g. template<class R, class... Rs> concept single_concatable = requires(const iterator_t<R> in) { { *in } -> convertible_to<concat_reference_t<Rs...>>; }; template<class... Rs> concept concatable = (single_concatable<Rs, Rs...> && ...);