面试真题

C++ · 中等 · 虎牙

lambda 表达式底层实现原理

中等 C++ 🎤 虎牙
参考答案
结论:lambda底层被编译器翻译成重载operator()的匿名闭包类。核心要点:1. 编译器为每个lambda生成唯一类,捕获变量成为该类成员变量;2. 按值捕获通过拷贝构造存入,按引用捕获存引用;3. 无捕获lambda可隐式转换为函数指针;4. 闭包类默认删除默认构造和赋值,仅能拷贝/移动。示例:[x](int y){return x+y;} 被译为 struct { int x; int operator()(int y) const { return x+y; } }; 调用时构造对象并传参。该机制使lambda零开销抽象,内联优化友好。
题目整理自公开面经,答案由校招宝自研生成,仅供参考