【发布时间】:2023-01-20 20:00:11
【问题描述】:
我正在将一些 C# 代码翻译成 C++。因为这是我第一次使用 C++,所以有些事情我不明白。
C#中原始代码的结构是:
public static Func<int, int, double> MyFunc(double InVar1, double InVar2)
{
return (FunVar1, FunVar2) =>
{
double Sum = FunVar1 + FunVar2:
double Prod = Sum * InVar1 * InVar2;
return Prod;
};
}
我试图在 C++ 中复制的代码是:
std::function<double(int, int)> MyFunc(double InVar1, double InVar2)
{
return [InVar1,InVar2](int FunVar1, int FunVar2)
{
double Sum = FunVar1 + FunVar2;
double Prod = Sum * InVar1 * InVar2;
return Prod;
};
}
首先,我不确定 C++ 结构是否复制了 C# 结构。
之后我在捕获列表中收到错误:
C++ no suitable user-defined conversion from "type" to "[...]" exists
我还尝试放入捕获列表:
[]
[&]
[=]
但他们都没有工作。
【问题讨论】:
标签: c# c++ lambda std std-function