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

时间:2012-10-08 00:27:14

标签: c++ c++11

说我正在通过目录递归,我有一堆过滤器

  1. 如果文件与此字符串匹配
  2. 如果目录与该字符串匹配
  3. 排除这些文件扩展名
  4. 排除目标X
  5. 时排除
  6. 有多个选项可以检查每个文件,并在功能上将它们用作过滤器。我可以将打开的每个选项转换为lambda,然后应用lambda列表以查看是否包含或排除某个文件。我也可以将lambdas包装成彼此,最后是一个将返回true或false的lambda。我已经多次遇到这种模式的可能性,我不知道什么是正确的答案。为方便起见,我通常会选择制作一个lambdas列表。

1 个答案:

答案 0 :(得分:1)

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