https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92268
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- (Comment 1 was wrong) A workaround is to replace the compound-requirement with a simple-requirement that depends on a function constrained with the desired constraint: template<forward_iterator I> void workaround(I) { } template<typename T> concept F = requires (T& t) { workaround(t.begin()); };