https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92136
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- Same issue with an explicit deduction guide: template <typename T> class Base {}; template <int d> class Test1 : public Base<Test1<d>> { public: Test1() = default; template <template <int> typename T> Test1(Base<T<d>> const &) {} }; template <int d, template <int> typename T> Test1(Base<T<d>> const &) -> Test1<d>; template <int d> class Test2 : public Base<Test2<d>> {}; int main() { Test2<2> const eps; Test1 const omega = eps; Test1 const gamma = eps; return 0; }