2018
- [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
- [EMCpp]Item-13 Prefer Const_iterators to Iterators
- [EMCpp]Item-12 Declare Overriding Functions Override
- Nodes on Clean Architecture
- [EMCpp]Item-11 Prefer Deleted Functions to Private Undefined Ones
- [EMCpp]Item-10 Prefer Scoped enums to Unscopded enums
- [EMCpp]Item-9 Prefer Alias Declarations to Typedefs