这是我的代码。每次我试图编译它时,它都会给我这个错误
在第3行的"float"之前需要主表达式
#include<iostream>
using namespace std;
auto fun = (float x){
return 1/(1-x);
};
int main(){
auto x=fun(0.5);
cout<<x;
return 0;
}
使用赋值运算符(即=
(,我可以想到lambda而不是函数:
auto fun = [](float x){
return 1/(1-x);
};
也就是说,只需在参数列表之前添加空的方括号(即[]
,它对应于lambda捕获列表(,就可以将=
后面的代码转换为lambda表达式。
从技术上讲,上面的=
并不是真正的赋值运算符。它只是属于复制初始化的语法。
auto fun = [](float x){
return 1/(1-x);
};