davidtgoldblatt added a comment. This version of the commit also introduces some breakages; as before I'm not sure if it's the code or the diff that's incorrect.
Repro: enum class Enum { E1 }; template <typename T1> inline constexpr bool some_concept = true; template <typename T1, Enum> struct S { template <typename T2> requires some_concept<T2> void func(const T2 &); }; template <typename T1> struct S<T1, Enum::E1> { template <typename T2> requires some_concept<T2> void func(const T2 &); }; template <typename T1> template <typename T2> requires some_concept<T2> inline void S<T1, Enum::E1>::func(const T2 &) {} Error: repro.cpp:23:30: error: out-of-line definition of 'func' does not match any declaration in 'S<type-parameter-0-0, Enum::E1>' inline void S<T1, Enum::E1>::func(const T2 &) {} Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D146178/new/ https://reviews.llvm.org/D146178 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits