At first glance, C++11 and C++14 are defined by the new features they introduce—auto type declarations, move semantics, lambda expressions, and concurrency support. Information on these features is easy to come by, but learning to apply them effectively (such that the resulting software is correct, efficient, maintainable, and portable) is more challenging. That’s the role of this book. It describes how to write effective software using C++11 and C++14, i.e., using modern C++.

Topics include:

  • The pros and cons of uniform initialization, noexcept specifications, perfect forwarding, and smart pointer make functions.
  • The relationships among std::move, std::forward, rvalues references, and universal references.
  • The most effective forms of lambda capture.
  • How best practices in "old" C++ programming (i.e., C++98) require revision for modern C++.

Effective Modern C++ follows the proven format of Scott Meyers’ earlier Effective books (Effective C++, More Effective C++, and Effective STL), but covers entirely new material. It’s essential reading for every modern C++ software developer.

Scott Meyers

For more than 20 years, Scott Meyers’ Effective C++ books (Effective C++, More Effective C++, and Effective STL) have set the bar for C++ programming guidance.
His clear, engaging explanations of complex technical material have earned him a worldwide following, and they keep him in demand as a trainer, consultant, and conference presenter.
Winner of the 2009 Dr. Dobb’s Excellence in Programming Award, he has a Ph.D. in Computer Science from Brown University.
His web site is aristeia.com.

  • Introduction : Introduction
  • Chapter 1 : Deducing Types
  • Chapter 2 : auto
  • Chapter 3 : From C++98 to C++11 and C++14
  • Chapter 4 : Smart Pointers
  • Chapter 5 : Rvalue References, Move Semantics, and Perfect Forwarding
  • Chapter 6 : Lambda Expressions
  • Chapter 7 : The Concurrency API
  • Chapter 8 : Tweaks