函数模板支持重载,但vc6是不是有模板重载后非模板函数就不支持类型自动转换?
1.自动转化#include<iostream>
using std::cout;
using std::endl;
int const& max(int const& a,int const& b)
{
return a<b?b:a;
}
int main()
{
cout<<max('a',42)<<endl;
return 0;
}
2.函数重载后,编译出错,没有调用非模板函数,还是调用模板。
#include<iostream>
using std::cout;
using std::endl;
inline int const& max(int const& a,int const& b)
{
return a<b?b:a;
}
template<typename T>
inline T const& max(T const& a,T const& b)
{
return a<b?b:a;
}
int main()
{
cout<<::max('a',42)<<endl;
return 0;
}
编译出错,参数不确定。
所以,函数模板支持重载,但重载后vc6不支持非函数模板自动转换了。