https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106214
Bug ID: 106214 Summary: Vector template argument deduction fails for templated function element Product: gcc Version: 11.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: henrik.nortamo at csc dot fi Target Milestone: --- Created attachment 53262 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=53262&action=edit full compiler error message The following code fails to compile with the command g++ -Wall -Wextra --std=c++17 minimal.cpp minimal.cpp """ #include <vector> template<typename T> void foo() {} int main(){ std::vector V{foo<float>}; return 0; } """ The error emitted is (full error as an attachment ): """ minimal.cpp: In function ‘int main()’: minimal.cpp:7:29: error: class template argument deduction failed: std::vector V{foo<float>}; ^ minimal.cpp:7:29: error: no matching function for call to ‘vector(<unresolved overloaded function type>)’ In file included from /usr/include/c++/8/vector:64 """ Tested to fail in the same way for the following g++ versions: 7.4.0 8.3.0 8.5.0 9.1.0 9.4.0 11.2.0 11.3.0 Code compiles using Clang 13.0.0, icpc (ICC) 19.0.4 and "Intel(R) oneAPI DPC++/C++ Compiler 2022.1.0"