Another question, why does this:
template<typename T, int n>void Func(){}template<typename T>void Func<T, 1>(){ int a = 0; a++;}
Result in
error C2768: 'Func' : illegal use of explicit template arguments
I'm just trying to specialize it
template<typename T, int n>void Func(){}template<typename T>void Func<T, 1>(){ int a = 0; a++;}
error C2768: 'Func' : illegal use of explicit template arguments
template<typename T, unsigned n>void Func(){}template<typename T, unsigned n>void Func<T, 1>(){ int a = 0; a++;}
error C2995: 'void Func(void)' : function template has already been defined
template<unsigned T>void Func(){}template<>void Func<1>(){ int a = 0; a++;}
template<typename T, typename A>struct Test{};template<typename T, typename A, typename B>struct Test{};
1>c:\users\tigeradmin\documents\visual studio 2008\projects\templatetest\templatetest\main.cpp(85) : error C2977: 'Test' : too many template arguments1> c:\users\tigeradmin\documents\visual studio 2008\projects\templatetest\templatetest\main.cpp(79) : see declaration of 'Test'