以下代码VC6编译不过,不知道fun(m1)调用那个函数,VC8能过。
#include <iostream> #include <string> #include <map> using namespace std ; void fun(int x) { } template<class _K, class _Ty> void fun(std::map<_K,_Ty>& m) { } template<class TYPE> void fun(TYPE x) { } class A { }; void main() { std::map<long, A> m1; fun(3); fun("dd"); fun(m1); } ------------------------------- template<class T> void Fun(T t1,T t2 ) { } template<class T1,class T2 > int Fun(T1 t1,T2 t2) { return 0 ; } void main() { int x1 = Fun((short)1,(long)1); }
VS2005(VS8)能过 VS2002(VC7)不能过。