C++11 新特性

发布于 2022-01-19  34 次阅读


  • lambda函数可以在函数内部定义(因为没有函数名)[可访问外部变量名]()->类型{函数体};
    例如:
    返回值为void 可以省略的
    [=]()->void{}; =是捕获所有外部变量进行值传递
    [&]()->void{}; &是捕获所有外部变脸进行引用传递
    [nums]()->void{}; 指定变量名称

       
    示例
    int num =250;
    //   void (*pFun)();
      [num]()->void{
           qDebug() << "被打了";
           qDebug() << num;
      }();

    //   pFun();


    指针指向lambda表达式示例
    int num1 =200,num2 = 300;
    //函数指针
    void (*ptr)(int&);
    //lambda函数定义
    ptr = [](int& n)->void{
       n = 2;
       qDebug() << n;
    };

    ptr(num1);
    qDebug(num1);

为了艾泽拉斯!