- Item27: Familiarize Yourself With Alternatives to Overloading on Universal Reference
- Item28: Understand Reference Collapsing
- Item29: Assume That Move Operations Are Not Present, Not Cheap, And Not Used
- Item30: Familiarize Yourself With perfect forwarding Failure Cases.
- Item23: Understand std::move and std::forward
- Item24: Distinguish Universal References From Rvalue References
- Item25: Use std::move on rvalue References, std::forward on Universal References
- Item26: Avoid Overloading on Universal References
- Item21: Prefer std::make_unique and std::make_shared to Direct Use of new
- Item22: When Using the Pimpl Idiom, Difine Special Member Functions in the Implementation File
- Item15: Use constexpr Whenever Possible
- Item16: Make const Member Functions Thread Safe
- Item17: Understand Special Member Function Generation
- Item18: Use unique_ptr for Exclusive-ownership Resource Management
- Item19: Use std::shared_ptr for Shared-ownership Resource Management
- Item20: Use std::weak_ptr for std::shared_ptr Like Pointers That Can dangle
- Item11: Prefer deleted Functions to Private Undefined Ones
- Item12: Declare Overriding Functions override
- Item13: Prefer const_iterators to iterators
- Item14: Declare Functions noexcept if They Won’t Emit Exceptions
^