这是我的代码。每次尝试编译时,都会出现此错误
第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 capture list的[]
),即可将=
之后的代码转换为lambda表达式。从技术上讲,上面的
=
实际上不是赋值运算符。它只是属于copy initialization的语法。
关于c++ - 如何使用赋值运算符声明函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63072257/