23 April 2022

C++ 核心指南目录

F.11: Use an unnamed lambda if you need a simple function object in one place only

理由

使得代码更简洁,更好的局部性。

例子

auto earlyUsersEnd = std::remove_if(users.begin(), users.end(),
                                    [](const User &a) { return a.id > 100; });

例外

  • lambda 命名可以使代码显得更清晰,哪怕只用到一次

强化

  • 找到完全一样的 lambda ,可以考虑换成函数或命名的 lambda