这部分内容对应的是Effective Modern C++第6章的内容。主要是簿记一下看到的lambda使用中可能的坑。

  • 默认捕获模式,完全可以避免使用,显式地写出来lambda表达式里想捕获哪些变量。主要是如此撰写的代码会掩藏引用、值导致的指针空悬的问题。
  • 捕获只能针对在创建lambda式的作用域内可见的非静态局部变量。
  • bind在c++11中,可以用于模拟移动捕获和模版化函数对象。
  • lambda和mutable:lambda生成的闭包类中的operator()函数是带有const饰词的,为了保证函数的可重入性。使用mutable饰词,可以修改值捕获入lambda的变量。