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> && ...);
}

Reply via email to