包裹在 lambda 中的 lambda 的效率是多少

What is the efficiency of lambdas wrapped inside lambdas?

本文关键字:lambda 多少 效率 中的 包裹      更新时间:2023-10-16

>假设我正在递归目录并且我有一堆过滤器

  1. 如果文件与此字符串匹配
  2. 如果目录与该字符串匹配
  3. 排除这些文件扩展名
  4. 如果您曾经点击过目录 X 则排除

每个文件有多个选项可以在此处检查,并在功能上将它们用作过滤器。我可以将打开的每个选项转换为 lambda,然后应用 lambda 列表以查看我是否包含或排除某个文件。我还可以将 lambda 相互包装,最终得到一个返回真或假的 lambda。我已经多次遇到这种模式的可能性,但我不知道正确的答案是什么。为了方便起见,我通常选择列出lambda。

它们应该与执行相同工作的手写函数对象一样高效,但键入更少。 编译器不需要任何非常神奇的东西来实现lambda,它们只需要实现一个定义了operator()的唯一命名类,并为任何捕获的变量声明数据成员。