为了账号安全,请及时绑定邮箱和手机立即绑定

为什么与普通函数相比,编译器可以更好地优化lambda?

为什么与普通函数相比,编译器可以更好地优化lambda?

C++
阿波罗的战车 2019-10-15 11:06:52
The C++ Standard Library (Second Edition)Nicolai Josuttis 在他的书中指出,与普通函数相比,编译器可以更好地优化lambda。另外,C ++编译器比常规函数更好地优化了lambda。(第213页)这是为什么?我认为在进行内联时应该不再有任何区别。我能想到的唯一原因是,编译器可能具有更好的lambda本地上下文,这样可以做出更多的假设并执行更多的优化。
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

因为当您将“函数”传递给算法时,实际上是在传递函数的指针,因此它必须通过指向函数的指针进行间接调用。使用lambda时,会将对象传递到专门针对该类型实例化的模板实例,并且对lambda函数的调用是直接调用,而不是通过函数指针的调用,因此很有可能是内联的。


查看完整回答
反对 回复 2019-10-15
  • 2 回答
  • 0 关注
  • 478 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信