第五章 右值引用、移动语义和完美转发
条款23:理解std::move和std::forward
条款24:区分通用引用和右值引用
条款25:在右值引用上使用std::move 在通用引用上使用std::forward
条款26:避免在通用引用上重定义函数
条款27:熟悉通用引用上重定义函数的其他选择
条款28:理解引用折叠
条款29:假定移动操作不存在,不廉价,不使用
条款30:熟悉完美转发和失败的情况
第六章 Lambda表达式
条款31:避免默认的参数捕捉
条款32:使用init捕捉来移动对象到闭包
条款33:在auto&&参数上使用decltype当std::forward auto&&参数
条款34:优先使用lambda而不是std::bind
第七章 并发API
条款35:优先使用task-based而不是thread-based
条款36:当异步是必要的时声明std::launch::async
条款37:使得std::thread在所有的路径下无法join
条款38:注意线程句柄析构的行为
条款39:考虑在一次性事件通信上void的特性
条款40:在并发时使用std::atomic 在特殊内存上使用volatile
第八章 改进
条款41:考虑对拷贝参数按值传递移动廉价,那就尽量拷贝
条款42:考虑使用emplace代替insert
2
1