Export (0) Print
Expand All
Expand Minimize

Compiler Warning (level 1) C4344

behavior change: use of explicit template arguments results in call to 'function'

A call to a function using explicit template arguments calls a different function than it would if explicit arguments had not been specified

The following sample generates C4344:

// C4344.cpp
// compile with: /EHsc /W1
#include "iostream"
using namespace std;
template<typename T> 
void f(T)
{
   cout << " in template function" << endl;
}
 
void f(char)
{
   cout << " in nontemplate function" << endl;
}

int main() 
{ 
   f<int>('a');   // C4344
   f('a');
} 
Show:
© 2014 Microsoft