#include <iostream>
using namespace std;
template<int x, int y>
void add()
{
cin >> x >> y;
cout << x + y << endl;
}
int main()
{
add<1,2>();
return 0;
}
在Windows10 +視覺工作室2017,它得到一個錯誤:二進制>>:在STD的左操作數的運算符::istream的類型沒有找到(或沒有可接受的轉化率)模板函數爲什麼不能添加「cin」?
的參數x
和y
有別於其他正常的int
變量?
如果您在沒有模板的情況下嘗試此操作,您將得到相同的錯誤。一些谷歌食物給你:「運營商優先權」。 –
@SamVarshavchik:你的意思是用常規函數參數替換模板參數?不,在這種情況下不會有錯誤(儘管參數會毫無意義,因爲函數會立即寫入它們)。 –
如果出現錯誤,請在您的問題中輸入錯誤消息。 –