template <class T, class U>
void func(T,U) { printf("T,U/n"); }
template <class T>
void func<T,T>(T,T) { printf("T,T/n"); }
func(int(), int()):
即,template function无法偏特化,但是很多时候我们都需要能够有function 偏特
化的存在, 这样就只能利用function overload来workaround.比如:
template<class T>
void func(T,T) { printf("T,T/n"); } //overload<class T>
如果我们需要更加复杂的偏特化机制, 可能需要在arguments里加上个type tag在
表示进行重载.