码迷,mamicode.com
首页 > 编程语言 > 详细

c++11 lambda(匿名函数)

时间:2014-07-31 23:49:50      阅读:351      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   os   io   cti   ar   

#include <iostream>
#include <functional>
using namespace std::placeholders;
//lambda即匿名函数
int main()
{
    int a = 10;
    //当return所有的返回都是一个类型就不需要指定返回值的类型,因为编译器会自动推断
    //也可以指定返回值类型形式:[]()->int{return 1};
    //格式:[captures] (params) -> ret {Statments;}  
    auto func = [](){
        std::cout << "hheh" << std::endl;
    };

    //lambda中变量截取
    /*    [] 不截取任何变量
        [&} 截取外部作用域中所有变量,并作为引用在函数体中使用
        [=] 截取外部作用域中所有变量,并拷贝一份在函数体中使用
        [=, &foo]   截取外部作用域中所有变量,并拷贝一份在函数体中使用,但是对foo变量使用引用
        [bar]   截取bar变量并且拷贝一份在函数体重使用,同时不截取其他变量
        [this]            截取当前类中的this指针。如果已经使用了&或者=就默认添加此选项。*/
    
    //所有要在lambda中使用a需要
    auto func1 = [=](){
        std::cout << "hheh" << std::endl;
        std::cout << a << std::endl;
    };
    func1();
    getchar();
    return 0;
}

 

c++11 lambda(匿名函数),布布扣,bubuko.com

c++11 lambda(匿名函数)

标签:style   blog   color   使用   os   io   cti   ar   

原文地址:http://www.cnblogs.com/zzyoucan/p/3883734.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!