更多C++学习笔记,关注 wx公众号:cpp读书笔记
Item 34: Prefer lambdas to std::bind
C++11中的std::bind
是C++98的std::bind1st
和std::bind2nd
的后续,但在2005年已经非正式成为了标准库的一部分。那时标准化委员采用了TR1的文档,其中包含了bind
的规范。(在TR1中,bind
位于不同的命名空间,因此它是std::tr1::bind
,而不是std::bind
,接口细节也有所不同)。这段历史意味着一些程序员有十年及以上的std::bind
使用经验。如果你是其中之一,可能会不愿意放弃一个对你有用的工具。这是可以理解的,但是在这种情况下,改变是更好的,因为在C++11中,lambda几乎总是比std::bind
更好的选择。 从C++14开始,lambda的作用不仅强大,而且是完全值得使用的。
这个条款假设你熟悉std::bind