------- 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

Reply via email to