(Such an error also appears to exist in 5458)
In the attached example the following error appears:
tpladdr.cc: In function `int main()':
tpladdr.cc:21: error: no matching function for call to `Op<int>::Exec(int,
<unknown type>)'
tpladdr.cc:14: error: candidates are: static bool Op<T>::Exec(T, bool (*)(T))
[with T = int]
In this case the error does not help (actually it misleads) as to what the
problem is. The reference to <unknown_type> seems to indicate that it doesn't
know the type of that paremeter, when in indeed it actually does, but the
function type has the wrong signature...
Simply correcting the function signature to:
bool Func( T param )
Allows the program to work as it should.
Thus the error message is simply very confusing.
--
Summary: less than optimal error message (actually, just appears
wrong, use of <unknown_type>?)
Product: gcc
Version: 3.3.1
Status: UNCONFIRMED
Severity: minor
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: eda-qa at disemia dot com
CC: gcc-bugs at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19741