为什么我可以专门化 class A
,但不能sum
以同样的方式专门化功能?如何使此代码工作?提前致谢。
template<class T>
class A
{
};
template<class T>
class A<T*>
{
};
template<class T>
T sum(const T& a, const T& b)
{
return a + b;
}
template<class T>
T sum<T*> (const T* a, const T* b)
{
return *a + *b;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a = 1, b = 2;
cout << sum<int>(&a, &b);`
A<int> c;
A<int*> d;
return 0;
}