It takes more than acquainting oneself with the features introduced by C++11 and C++14 to get to grips with them (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The trick is to figure out how to make good use of those characteristics so that your program is accurate, efficient, manageable, and portable. This is where this helpful guide comes in. It explains how to develop genuinely excellent software with C++11 and C++14, or current C++.
In this book, you'll find topics such as:
- The pros and cons of braced initialization,noexcept specifications, perfect forwarding, and smart pointer make functions
- The relationships among std::move, std::forward, rvalue references, and universal references
- Techniques for writing clear, correct, effective lambda expressions
- How std::atomic differs from volatile, how each should be used, and how they relate to C++'s concurrency API
- How best practices in "old" C++programming (i.e.,C++98) require revision for software development in modern C++