美文网首页C/C++98/C++11
C++匿名函数(lambda)

C++匿名函数(lambda)

作者: 音视频直播技术专家 | 来源:发表于2018-11-13 12:21 被阅读28次

    普通的匿名函数

    [](int x){return x + 1;};
    

    显示指定返回值类型

    [](int x)->int{int y = x + 1; return y;};
    

    对于lambda,只要有返回值,且函数体包含一句语句以上时,其返回值的类型就无法由编译器自动推导,必须明确指定。

    lambda的捕获表达式

    通过引用捕获,值捕获等捕获方式,lambda的函数体内可以捕获并使用lambda的外围中定义的局部变量以及类成员变量。

    引用捕获

    int n = 1;
    [&](){
        n++; // n==2
    }();
    // n==2
    

    值捕获

    int n = 1;
    [=]()mutable{
        n++; // n==2
    }();
    

    相关文章

      网友评论

        本文标题:C++匿名函数(lambda)

        本文链接:https://www.haomeiwen.com/subject/liwkfqtx.html