Effective Modern C++
- Category Other
- Type E-Books
- Language English
- Total size 22.7 MB
- Uploaded By AUDIA4
- Downloads 591
- Last checked 2 weeks ago
- Date uploaded 1 decade ago
- Seeders 3
- Leechers 0
Infohash : D170A00AE910EB44C61100F72C2A9B7F3DA0D856
Chapter 1Deducing Types
Item 1:âUnderstand template type deduction.
Item 2:âUnderstand auto type deduction.
Item 3:âUnderstand decltype.
Item 4:âKnow how to view deduced types.
Chapter 2auto
Item 5:âPrefer auto to explicit type declarations.
Item 6:âUse the explicitly typed initializer idiom when auto deduces undesired types.
Chapter 3Moving to Modern C++
Item 7:âDistinguish between () and {} when creating objects.
Item 8: Prefer nullptr to 0 and NULL.
Item 9:âPrefer alias declarations to typedefs.
Item 10:âPrefer scoped enums to unscoped enums.
Item 11:âPrefer deleted functions to private undefined ones.
Item 12:âDeclare overriding functions override.
Item 13:âPrefer const_iterators to iterators.
Item 14:âDeclare functions noexcept if they wonât emit exceptions.
Item 15:âUse constexpr whenever possible.
Item 16:âMake const member functions thread safe.
Item 17:âUnderstand special member function generation.
Chapter 4Smart Pointers
Item 18:âUse std::unique_ptr for exclusive-ownership resource management.
Item 19:âUse std::shared_ptr for shared-ownership resource management.
Item 20:âUse std::weak_ptr for std::shared_ptr-like pointers that can dangle.
Item 21:âPrefer std::make_unique and std::make_shared to direct use of new.
Item 22:âWhen using the Pimpl Idiom, define special member functions in the implementation file.
Chapter 5Rvalue References, Move Semantics, and Perfect Forwarding
Item 23:âUnderstand std::move and std::forward.
Item 24:âDistinguish universal references from rvalue references.
Item 25:âUse std::move on rvalue references, std::forward on universal references.
Item 26:âAvoid overloading on universal references.
Item 27:âFamiliarize yourself with alternatives to overloading on universal references.
Item 28:âUnderstand reference collapsing.
Item 29:âAssume that move operations are not present, not cheap, and not used.
Item 30:âFamiliarize yourself with perfect forwarding failure cases.
Chapter 7Lambda Expressions
Item 31:âAvoid default capture modes.
Item 32:âUse init capture to move objects into closures.
Item 33:âUse decltype on auto&& parameters to std::forward them.
Item 34:âPrefer lambdas to std::bind.
Chapter 8The Concurrency API
Item 35:âPrefer task-based programming to thread-based.
Item 36:âSpecify std::launch::async if asynchronicity is essential.
Item 37:âMake std::threads unjoinable on all paths.
Item 38:âBe aware of varying thread handle destructor behavior.
Item 39:âConsider void futures for one-shot event communication.
Item 40:âUse std::atomic for concurrency, volatile for special memory.
Chapter 9Tweaks
Item 41:âConsider pass by value for copyable parameters that are cheap to move and always copied.
Item 42:âConsider emplacement instead of insertion.
Files:
- Effective Modern C++.epub (18.2 MB)
- Effective Modern C++.pdf (4.5 MB)
There are currently no comments. Feel free to leave one :)
Code:
- udp://tracker.publicbt.com:80/announce
- udp://open.demonii.com:1337/announce
- udp://tracker.openbittorrent.com:80/announce
- udp://tracker.istole.it:80/announce