说我正在通过目录递归,我有一堆过滤器
有多个选项可以检查每个文件,并在功能上将它们用作过滤器。我可以将打开的每个选项转换为lambda,然后应用lambda列表以查看是否包含或排除某个文件。我也可以将lambdas包装成彼此,最后是一个将返回true或false的lambda。我已经多次遇到这种模式的可能性,我不知道什么是正确的答案。为方便起见,我通常会选择制作一个lambdas列表。
答案 0 :(得分:1)
它们应该与执行相同工作的手写功能对象一样高效,但键入较少。编译器不需要任何非常神奇的东西来实现lambdas,它们只需要实现一个定义了operator()
的唯一命名类,并为任何捕获的变量声明数据成员。