知识卡片

lambda优于bind

普通读书笔记卡 · 1434

内容

lambda 将捕获、参数及求值位置写得更直接,通常比 bind 更易读,也更容易内联和选择重载。C++11 中 bind 可用于模拟移动捕获或处理模板调用对象;C++14 对应语言能力增强后,这些例外进一步减少。

参考来源

- 位置:《Effective Modern C++》第6章《lambda表达式》,条款三十四:考虑 lambda 而非 std::bind(源文件:_epub-src/EPUB/text/ch007.xhtml) - 结论依据:原文比较lambda与bind的表达、求值和优化差异,保留C++11的两类例外。 - 原始内容:与使用 std::bind 相比, lambda 更易读,更具表达力并且可能更高效。 只有在C++11中, std::bind 可能对实现移动捕获或绑定带有模板化函数调用运算符的对象时会很有用。