[Bug c++/57678] New: too many errors for bad template parameter
manu at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Jun 22 19:47:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57678
Bug ID: 57678
Summary: too many errors for bad template parameter
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: manu at gcc dot gnu.org
template<int N> int foo(int a) { return N; }
void bar(void)
{
foo<x>(5);
}
triggers:
test.cpp:5:9: error: ‘x’ was not declared in this scope
foo<x>(5);
^
test.cpp:5:13: error: no matching function for call to ‘foo(int)’
foo<x>(5);
^
test.cpp:5:13: note: candidate is:
test.cpp:1:21: note: template<int N> int foo(int)
template<int N> int foo(int a) { return N; }
^
test.cpp:1:21: note: template argument deduction/substitution failed:
test.cpp:5:13: error: template argument 1 is invalid
foo<x>(5);
^
The second error is not useful (and the last "error" should be a note), why
even try to match the function call if the template argument was invalid?
Is there any case where the template argument is invalid and the invalidity is
not triggered by a previous error?
Clang:
test.cpp:5:9: error: use of undeclared identifier 'x'
foo<x>(5);
^
More information about the Gcc-bugs
mailing list