https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98767
Bug ID: 98767 Summary: Function signature lost in concept diagnostic message Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: antoshkka at gmail dot com Target Milestone: --- Consider the example: template <typename Function, typename T> concept Callable1Arg = requires(Function func, T value) { func(value); }; // Should fail and fails: static_assert(Callable1Arg<int(*)(int*), bool>); The diagnotics has the following line: "in requirements with 'Function func', 'T value' [with T = bool; Function = int (*)()]" However the type of the Function is "int (*)(int*)" not "int (*)()" Godbolt playground: https://godbolt.org/z/afKqq5