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);
      |               ^

Reply via email to