https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71125
--- Comment #3 from Andrew Sutton <andrew.n.sutton at gmail dot com> --- The TS did allow overloading function concepts. Function concepts have some parsing issues related to TS-style terse notation, overloading and variadic templates. In particular, there are places where writing C<T> forms a (possibly) syntactically valid placeholder C<?, T> as part of a functional cast expression, which leads to the error you're seeing: you're incompletely instantiating a template-id that resolved to the template with two parameters. I think that's the error you're seeing here, but I wouldn't consider the issue a show stopper. After all, function concepts don't exist in C++20 and they can't be overloaded. That said, I'm okay leaving this open.