https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115231
--- Comment #4 from huangqinjin at gmail dot com --- g++ -fmodules-ts -std=c++20 module.cpp main.cpp main.cpp: In function 'int main()': main.cpp:11:15: error: class template argument deduction failed: 11 | A b(B{}, 1); | ^ main.cpp:11:15: error: no matching function for call to 'A@Mod(B, int)' In module Mod, imported at main.cpp:1: module.cpp:11:9: note: candidate: 'template<class T> A@Mod(T)-> A@Mod<T>' 11 | A(T) {} | ^ module.cpp:11:9: note: template argument deduction/substitution failed: main.cpp:11:15: note: candidate expects 1 argument, 2 provided 11 | A b(B{}, 1); | ^ In module Mod, imported at main.cpp:1: module.cpp:9:9: note: candidate: 'template<class T, class U> A@Mod(U, int)-> A@Mod<T>' 9 | A(U, int) {} | ^ module.cpp:9:9: note: template argument deduction/substitution failed: main.cpp:11:15: note: couldn't deduce template parameter 'T' 11 | A b(B{}, 1); | ^ In module Mod, imported at main.cpp:1: module.cpp:6:12: note: candidate: 'template<class T> A@Mod(A@Mod<T>)-> A@Mod<T>' 6 | struct A | ^ module.cpp:6:12: note: template argument deduction/substitution failed: main.cpp:11:15: note: 'B' is not derived from 'A@Mod<T>' 11 | A b(B{}, 1); | ^