int exp2(int i,int j)
{
return i*j;
}
int main()
{
cout<<exp2(7,[](){return 7;})<<endl;
return 0;
}
报错:
error: invalid user-defined conversion from “main()::<lambda()>” to “int” [-fpermissive]|
这个为什么不行,上面不是就相当于下面的代码吗:
int fun()
{
return 7;
}
int main()
{
cout<<exp2(7,fun())<<endl;
return 0;
}
{
return i*j;
}
int main()
{
cout<<exp2(7,[](){return 7;})<<endl;
return 0;
}
报错:
error: invalid user-defined conversion from “main()::<lambda()>” to “int” [-fpermissive]|
这个为什么不行,上面不是就相当于下面的代码吗:
int fun()
{
return 7;
}
int main()
{
cout<<exp2(7,fun())<<endl;
return 0;
}
解决方案
20
你那只是个函数表达式,不是函数调用。
要调用记得加()
要调用记得加()
20
[](){return 7;}()