你如何使用c ++ lambda&#c;如c#

时间:2018-02-11 05:29:45

标签: c# c++ lambda

我有c#lambdas的经验,我试图将其翻译成c ++。例如,采用这种c#方法:

int sum(int one,int two)=>一+二;

c ++是否有这样的快捷方式,或者我需要具体说回来吗?

2 个答案:

答案 0 :(得分:3)

  

c ++是否有这样的快捷方式,或者我需要具体说回来吗?

C ++不支持该语法。您必须使用return

我在C ++中可以想到的最接近的类比是lambda函数和inline函数。

lambda函数:

auto sum = [] (int one, int two) { return one + two; };

内联函数:

int sum(int one, int two) { return one + two; };

答案 1 :(得分:1)

实际上,这不是C#中的lambda,而是一个"表达身体的成员" - 即,只是编写函数的快捷方式:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/expression-bodied-members

C ++中的等价物只是一个简单的旧方法:

int sum(int one, int two)
{
    return one + two;
}