C++ | 高阶函数,lambda,auto,function

用过js的朋友肯定对下面的函数调用不会陌生

#include <iostream>

using namespace std;

auto connect = [](auto value){
    auto $value = "resolve: " + value;
    return [=](auto call){
        call($value);
    };
};


int main()
{
    connect(string("hehe"))([](auto res){
        cout << res;
    });

    return 0;
}

程序输出:

resolve: hehe

 

高阶函数就是返回函数的函数

connect函数接受一个string类型的值,并对它做一些处理,然后返回一个函数,

返回的子函数又接受一个函数类型变量call,从父作用域获取到$value后注入到回调函数call中。

 

关键字auto帮我们推导了function的类型,lambda也可以省略返回值类型

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值