再议 C++ 11 Lambda表达式
目录
C++ 的Lambda表达式
C++ 11 标准发布,各大编译器都开始支持里面的各种新特性,其中一项比较有意思的就是lambda表达式。
语法规则
C++ 11 Lambda表达式的四种声明方式
- \[ capture \]( params ) mutable(optional) exception attribute -> ret { body }
- \[ capture \]( params ) -> ret { body }
- \[ capture \]( params ) { body }
- \[ capture \]{ body }
- capture是外部引用的参数
- params是函数参数
- 后面可以跟一些函数修饰符
- ret是返回值类型,如果不指定,会推断一个类型
- body部分是函数内容 具体用法可以参照C++文档,这里就不复述了
这四个声明式都会返回一个匿名的仿函数实例)。 这里有一个比较重要的一点,就是他是一个仿函数实例,而不是直接一个函数。