2018
- [EMCpp]Item-33 Use decltype on auto&& parameters to std::forward them
- [EMCpp]Item-32 Use Init Capture to Move Objects Into Closures
- [EMCpp]Item-31 Avoid Default Capture Modes
- [EMCpp]Item-30 Failure Cases in Perfect Forwarding
- [EMCpp]Item-29 Assume Move Operations Are Not Present Not Cheap, and Not Used
- [EMCpp]Item-28 Understand Reference Collapsing
- [EMCpp]Item-27 Alternatives to Overloading on Universal References
- [EMCpp]Item-26 Avoid Overloading on Universal References
- [EMCpp]Item-25 Use std::move on Rvalue References, std::forward on Universal References
- [EMCpp]Item-24 Distinguish Universal References From Rvalue References
- [EMCpp]Item-23 Understand std::Move and std::Forward
- [EMCpp]Item-22 When Using Pimple Idiom, Define Special Member Functions in the Implementation File
- [EMCpp]Item-21 Prefer std::make_unique and std::make_shared to Direct Use of New
- [EMCpp]Item-20 Use Weak_ptr for Shared_ptr Like Pointers That Can Dangle
- [EMCpp]Item-19 Use std::Shared_ptr for Shared-ownership Resource Management
- [EMCpp]Item-18 Use std::unique_ptr for Exclusive-ownership Resource Management
- [EMCpp]Item-17 Understand Special Member Function Generation
- [EMCpp]Item-16 Make Const Member Functions Thread Safe
- [EMCpp]Item-15 Use Constexpr Whenever Possible
- [EMCpp]Item-14 Declare Functions Noexcept if They Won't Emit Exception