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"