#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:你的意思是用常规函数参数替换模板参数?不,在这种情况下不会有错误(尽管参数会毫无意义,因为函数会立即写入它们)。 –
如果出现错误,请在您的问题中输入错误消息。 –