zoukankan      html  css  js  c++  java
  • c++11 lambda(匿名函数)

    #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;
    }
        for(int i = 0; i < thread_numb; ++i)
        {
            m_libevent_threads[i]->spThread.reset(new std::thread([]
            (void* arg)
            {
                auto me = (LibeventThread*) arg;
                event_base_loop(me->thread_base, 0); //线程循环派发
            }, m_libevent_threads[i]));
        }

    可以传递参数

    m_libevent_threads[i]
  • 相关阅读:
    几道关于this的经典练习题的理解与分析
    对this的理解与总结
    内存机制及内存泄漏相关总结
    css3-伪元素与伪类
    css3-目标伪类选择器:target的应用
    react学习资料
    angular2学习视频
    vue学习资料
    gulp 入门---使用gulp压缩图片
    gulp 入门---使用gulp压缩css
  • 原文地址:https://www.cnblogs.com/zzyoucan/p/3883734.html
Copyright © 2011-2022 走看看