------- Additional Comments From bangerth at dealii dot org 2005-02-01 14:27
-------
This is in fact true. There is a mismatch between error messages for
template function arguments and non-templates:
--------------------
void foo1();
template <typename> void foo2();
template <typename> bool bar(void (*) () );
bool b1 = bar<int> (1, &foo1);
bool b2 = bar<int> (1, &foo2<int>);
--------------------
g/x> /home/bangerth/bin/gcc-4.0-pre/bin/c++ -c x.cc
x.cc:6: error: no matching function for call to ?bar(int, void (*)())?
x.cc:7: error: no matching function for call to ?bar(int, <unknown type>)?
Since the complete template arguments to foo2 are given, the type should
in fact be completely known.
W.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords| |diagnostic
Last reconfirmed|0000-00-00 00:00:00 |2005-02-01 14:27:13
date| |
Summary|less than optimal error |suboptimal error message for
|message (actually, just |template functions (as
|appears wrong, use of |opposed to non-templates)
|<unknown_type>?) |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19741