0

假设我正在遍历目录并且我有一堆过滤器

  1. 如果文件匹配这个字符串
  2. 如果目录与该字符串匹配
  3. 排除这些文件扩展名
  4. 如果您曾经点击目录 X,请排除
  5. ETC

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

4

1 回答 1

1

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

于 2012-10-08T22:16:40.003 回答