------- Comment #5 from bangerth at gmail dot com 2009-08-25 14:25 ------- Jonathan, the point everyone is trying to make is this: since no function or function template matches the call, all the compiler could possibly do is list all declarations of the name staticPrint() or none, but of course either choice is equally good.
But I think I understand what he means. In this example ---------------------- template<typename T, T t> void staticPrint(); void f() { staticPrint<double, "text">(); } ---------------------- He would like the error message to say no matching function for call to 'staticPrint<double,(const char[5])"text")>()' instead of no matching function for call to 'staticPrint()' The reason being that it can indeed sometimes be hard to figure out what template type the compiler is trying to match if they result from some template trickery rather than being explicitly specified as done in the example above. I agree with this. W. -- bangerth at gmail dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |bangerth at gmail dot com Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |diagnostic Last reconfirmed|0000-00-00 00:00:00 |2009-08-25 14:25:09 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40793