cpp lambda vs 仿函数
Lambda表达式不一定比仿函数快,二者性能差异主要源于编译器优化策略
1. 无捕获Lambda可被隐式转换为函数指针,或直接作为模板参数实例化,编译器能更轻松地做内联优化(消除函数调用开销);
而传统仿函数的 operator() 是否内联,取决于编译器对类成员函数的优化判断。
2. 有捕获Lambda本质是编译器自动生成的匿名仿函数,与手写仿函数的底层结构几乎一致,性能基本无差别。
实际场景中,Lambda的“快”更多是写法简洁带来的优化友好性,而非语法本身的性能优势。
