简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
文章来源:https://www.toymoban.com/news/detail-516267.html
1.前言
本篇目的:理解C++ lambda函数调用形式。文章来源地址https://www.toymoban.com/news/detail-516267.html
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---->")}();
注意:调用形式比定义多了一个小括号。
到了这里,关于C++之lambda函数应用(一百四十七)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!