https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94973
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=94771 --- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> --- Aha, the same problem happens on linux if I compile with -fms-extensions This is the old MS extension that causes x.*f to be accepted when f is a pointer to member function, which should only be valid when used as (x.*f)(). That causes ranges::invoke to think that the projection is a pointer to data member, when actually it's a pointer to member function. See also PR 94771 comment 4. Jason, do we want to disable that extension in SFINAE contexts?