C++Lambda表达式作为参数

Posted 17岁boy想当攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++Lambda表达式作为参数相关的知识,希望对你有一定的参考价值。

Lambda表达式又称为小型函数,它的使用方法是:[捕获方式](参数类型)->返回类型代码

通常我们不会写返回类型,因为编译器可以根据Return语句来推导返回类型,隐式为我们去加上去。

相关可以参考:C/C++_Lambda表达式_17岁boy的博客-CSDN博客

首先我们定义一个函数指针,参数是函数指针:

typedef int (*pFunc)(int,int);
int CallBack(pFunc Func)

        return Func(5,5);

然后在main里调用:


int main()
        int a = CallBack( [](int a,int b)->intreturn a + b;);
        printf("%d\\n",a);

当然不用函数指针我们也可以用模板自动推导:

template <typename F>
int CallBack(F Func)

        return Func(5,5);

让函数指针指向这段函数,然后在CallBack调用它!

这样的方法在QT里是非常常见的。

以上是关于C++Lambda表达式作为参数的主要内容,如果未能解决你的问题,请参考以下文章