目录

C++ 的Lambda表达式

C++ 11 标准发布,各大编译器都开始支持里面的各种新特性,其中一项比较有意思的就是lambda表达式。

语法规则

C++ 11 Lambda表达式的四种声明方式

  1. \[ capture \]( params ) mutable(optional) exception attribute -> ret { body }
  2. \[ capture \]( params ) -> ret { body }
  3. \[ capture \]( params ) { body }
  4. \[ capture \]{ body }
  • capture是外部引用的参数
  • params是函数参数
  • 后面可以跟一些函数修饰符
  • ret是返回值类型,如果不指定,会推断一个类型
  • body部分是函数内容 具体用法可以参照C++文档,这里就不复述了

这四个声明式都会返回一个匿名的仿函数实例)。 这里有一个比较重要的一点,就是他是一个仿函数实例,而不是直接一个函数