template <typename T>
和有什么区别?和 template <class T>
.
对我来说,两者都产生了相同的结果。
例如
template <class T>
T Average(T *atArray, int nNumValues)
{
T tSum = 0;
for (int nCount=0; nCount < nNumValues; nCount++)
tSum += atArray[nCount];
tSum /= nNumValues;
return tSum;
}
如果我将其更改为 template <typename T>
一样的
最佳答案
没有区别。 typename
和 class
在类型模板参数的声明中可以互换。
但是,在声明模板模板参数时,您必须使用 class
(而不是 typename
):
template <template <typename> class T> class C { }; // valid!
template <template <typename> typename T> class C { }; // invalid! o noez!
关于c++ - 模板 <typename T> 和模板 <class T> 有什么区别。对我来说,两者都产生相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5307036/