请帮助了解以下情况
template<typename T1,typename T2=int> class A;
template<typename T1=int,typename T2> class A;
template<typename T1,typename T2> class A{ }
// yields to template<typename T1=int,typename T2=int> compiling fine
但当我使用非类型模板时给出错误
template<typename T1,int i=4> class A;
template<typename T1=int,int i> class A;
template<typename T1,int i> class A{ } // error : redefinition of default parameter 2
这种合并是否适用于模板类型和非类型??