https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105644
Patrick Palka <ppalka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|needs-reduction | --- Comment #3 from Patrick Palka <ppalka at gcc dot gnu.org> --- Thanks for the reduction. Fixing this GCC bug(s) proved to be tricky, but one should be able to reliably work around it by avoiding using a requires-expr directly inside a pack expansion or fold expression and use it indirectly instead, e.g. template<class T, int I> concept foo = requires(T t) { { (I, t) } -> C<I>; }; template<typename T, int...I> constexpr bool check() { return (foo<T, I> && ...); }