是否有可能在c ++中做这样的事情:
template<class T1, class T2>
class A<T1*, T2> {
T1* var;
T2 var1;
};
template<class T1, class T2>
class A<T1, T2*> {
T1 var;
T2* var1;
};
Run Code Online (Sandbox Code Playgroud)
实际上我想知道我是否可以达到模板重载,当两个类具有相同的名称但模板中的参数不同时,提前感谢任何好主意
这就是所谓的部分模板专业化
template<class T1, class T2>
class A;
template<class T1, class T2>
class A<T1*, T2> {
T1* var;
T2 var1;
};
template<class T1, class T2>
class A<T1, T2*> {
T1 var;
T2* var1;
};
Run Code Online (Sandbox Code Playgroud)
当然,你需要第三个A<T1*, T2*>才能安全起来.否则你会得到两个指针的含糊不清.