c++ - 如何使用赋值运算符声明函数?

标签 c++ c++11

这是我的代码。每次尝试编译时,都会出现此错误
第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/

相关文章:

c++ - 优化的 argmin : an effective way to find an item minimizing a function

c++ - 为什么 openMP 取消构造不取消工作共享区域?

c++ - 如何创建函数指针数组?

c++ - ASIO UDP:类 std::allocator<void> 没有名为 ‘construct’ 的成员

c++ - 关于按引用调用的问题?

c++ - 迭代器增量导致clang和gcc的结果不同

c++ - 如何在 constexpr 函数中实现后备运行时实现

c++ - 防止编码器在物理模拟中出现错误 "forget to divide by time"

c++ - 旋转整数以获得最大尾随二进制零

c++ - 如何通过参数包传递引用?