我想在C++中學習模板。有人可以解釋爲什麼sq()工作和add()不是? add()如何修復?什麼是非類型模板的使用?如何在C++中創建和使用非類型模板以及將在何處使用
template <typename T>
inline T sq (const T& x)
{
return x*x;
}
template <int*>
inline int add(int* x)
{
return (*x)*2;
}
int main() {
int x = 2;
cout<<"Square(2): "<<sq(2)<<" Add(2): "<<add(&x)<<endl;
return 0;
}
即使修改如下上面的例子之後,也仍然無法正常工作
template <typename T>
inline T sq (const T& x)
{
return x*x;
}
template <int>
inline int add(int x)
{
return x+x;
}
int main() {
cout<<"Square(2): "<<sq(2)<<" Add(2): "<<add(2)<<endl;
return 0;
}
添加的確切目的並不重要,正如我上面提到的,它只是爲了學習。事實是,添加從語法角度來看是有效的。我的問題是如何使用它,爲什麼簡單的添加(&x)不起作用? – Jimm 2012-01-05 16:27:32
在這種情況下,添加(X)_would_工作,這就是爲什麼人們感到困惑, – 2012-01-05 16:46:19