please help to understand below scenario
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
but when i use non type template its giving error
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
is this merging won't work with template type and non-type ??