C++11 中使用 Lambda 表达式定义匿名函数。
// <...> 表示需要替换的部分
[<capture>](<parameters>)mutable -> <return_type>
{
<statements>
}
- <capture>:可省略。函数对象参数,标识 Lambda 表达式的开始(局部变量不包括成员变量,但包括
this
);- 空:不使用函数对象参数;
=
:在大括号中,表达式头部所在范围内所有可见的局部变量可用,按值传递;&
:在大括号中,表达式头部所在范围内所有可见的局部变量可用,按引用传递;this
:传递 this 指针,表达式头部所在类中的成员变量可用(可直接使用),按引用传递;a
:在大括号中,表达式头部所在范围内可见的局部变量 a 可见,按值传递;- <