effective modern cpp 37
- 条款17:理解特殊成员函数的生成
- 条款16:让const成员函数线程安全
- 条款15:尽可能使用constexpr
- 条款14:如果函数不抛出异常请使用noexcept
- 条款13:优先考虑const_iterator而非iterator
- 条款12:使用override声明重写函数
- 条款11:优先考虑使用deleted函数,而非使用未定义的私有声明
- 条款10:优先考虑限域enum而非未限域enum
- 条款9:优先考虑别名声明(using)而非typedef
- 条款8:优先考虑nullptr而非0和NULL
- 条款7:区别使用()和{}创建对象
- 条款42:考虑使用置入(emplace)代替插入(insert)
- 条款41:对于移动成本低且总是被拷贝的可拷贝形参,考虑按值传递
- 条款34:优先使用Lambda而非stdbind
- 条款33:对auto&&形参使用decltype以stdforward它们
- 条款32:使用初始化捕获来移动对象到闭包中
- 条款31:避免使用默认捕获模式
- 条款30:万能引用的完美转发失败情况
- 条款29:认识移动操作的缺点
- 条款28:理解引用折叠
- 条款27:熟悉万能引用重载的替代方法
- 条款26:避免在万能引用上重载
- 条款24:区分万能引用与右值引用
- 条款25:对右值引用使用stdmove,对万能引用使用stdforward
- 条款23:理解stdmove和stdforward
- 条款22:Pimpl需在实现文件定义特殊函数
- 条款21:优先使用stdmake_unique和stdmake_shared而非直接使用new
- 条款20:当stdshared_ptr可能悬空时使用stdweak_ptr
- 条款19:使用stdshared_ptr管理共享资源
- 条款18:使用stdunique_ptr管理独占资源
- 条款6:当auto推导不如预期时,显式类型初始化的必要性
- 条款5:优先考虑auto而非显式类型声明
- 条款4:类型推导结果的查看方式
- 条款3:理解decltype
- 条款2:auto类型推导
- 条款1:模板类型推导
- C++Pimpl