Lambda 是 C++11 引入的最具表现力的特性之一。它让"在现场定义一个可调用对象"从手写函数对象的繁琐中解放出来,直接改变了我们使用 STL 算法、注册回调、写异步代码的方式。
但 Lambda 的底层模型并不简单。"捕获"到底意味着什么?泛型 Lambda 的 auto 和模板 Lambda 的模板参数有什么区别?Lambda 对象在内存中究竟长什么样?本文从编译器视角出发,把这些问题一一拆解。
2026/5/6大约 6 分钟
Lambda 是 C++11 引入的最具表现力的特性之一。它让"在现场定义一个可调用对象"从手写函数对象的繁琐中解放出来,直接改变了我们使用 STL 算法、注册回调、写异步代码的方式。
但 Lambda 的底层模型并不简单。"捕获"到底意味着什么?泛型 Lambda 的 auto 和模板 Lambda 的模板参数有什么区别?Lambda 对象在内存中究竟长什么样?本文从编译器视角出发,把这些问题一一拆解。