https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118944
Bug ID: 118944 Summary: deduced conflicting types for explicitly specified (non-deduced) template parameter in explicit object member function of struct template Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: waffl3x at protonmail dot com Target Milestone: --- https://godbolt.org/z/xhEqn4rEc template<typename> struct S { template <typename T, typename Self> void f(this Self, T) {} void g() { f<char>(0); } }; There is an additional oddity with this that seems to indicate an additional bug, but I don't have a test case for it. As far as I know, these functions shouldn't even be being instantiated yet, yet they appear to be. Perhaps I am mistaken though so it makes it harder for me to determine whether my thoughts on this are true, so take it with a grain of salt. This is probably not a regression, I could not find a way to trigger it outside of an xobj member function.