简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
1.前言
本篇目的:理解C++ lambda函数调用形式。
2.应用实例
#include <iostream>
using namespace std;
int main() {
//1.():无参数;无返回值.(未调用)
[](){
printf("xxx----->%s(), line = %d\n",__FUNCTION__,__LINE__);
};
//2.():无参数;无返回值.(直接调用)
[](){
printf("xxx----->%s(), line = %d\n",__FUNCTION__,__LINE__);
}();
//3.():参数为空,返回值为int.(直接调用)
[]()->int {
printf("xxx--------->%s, line = %d\n",__FUNCTION__,__LINE__);
return 10;
}();
//4.():参数为空,返回值为string.(直接调用)
[]()->string {
printf("xxx--------->%s, line = %d\n",__FUNCTION__,__LINE__);
return string("12345");
}();
//5.将lambda函数赋值给函数指针,由函数指针调用.传入char*类型参数,返回值为string类型.
auto func1 = [](char *arg)->string{
return static_cast<string>(arg);
};
string buf = func1((char*)"abcdefg");
printf("xxx--------->%s, line = %d, buf = %s\n",__FUNCTION__,__LINE__,buf.c_str());
return 0;
}
3.总结
1.定义形式
[](){ printf("xxx---->") };
2.调用形式
[](){ printf("xxx---->")}();
注意:调用形式比定义多了一个小括号。