求指导,lamda的使用

C++语言 码拜 8年前 (2016-05-25) 849次浏览
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;
}
解决方案

20

你那只是个函数表达式,不是函数调用。
要调用记得加()

20

[](){return 7;}()

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求指导,lamda的使用
喜欢 (0)
[1034331897@qq.com]
分享 (0)