我有以下代碼:錯誤:「X」不姓模板功能的X型
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
template< typename X>
X unary(X x)
{
return x*10;
}
X binary(X x,X y)
{
return x+y;
}
int main()
{
vector<int> v1{1,2,3,4,5,6};
vector<int> v2(v1);
vector<int>::iterator i;
for(i=v2.begin();i<v2.end();i++)
cout<<*i<<endl;
cout<<"unary "<<unary<int>(2)<<endl;
cout<<"binary "<<binary<int>(2,7);
}
但是,它並不能編譯,而是我收到以下錯誤信息:
transform.cpp:12:1: error: ‘X’ does not name a type
X binary(X x,X y)
transform.cpp: In function ‘int main()’:
transform.cpp:28:19: error: expected primary-expression before template’
以下行出現:
cout<<"binary "<< binary<int,int>(2,7);
爲什麼X
名稱的類型unary
,但不是binary
?
而對於'binary'功能,什麼是'X'?該功能不是模板。 –
您需要在本網站上閱讀[*本網頁以瞭解正確的詢問方式*](https://stackoverflow.com/help/asking)。 – Shadi