This month a new book from Scott Meyers has become available, it’s the latest one of his Effective software development series (More Effective C++, Effective STL and Effective C++).
In this book Scott Meyers focuses on the new C++11 and C++14 standards which have been covered just by very few books so far. Given the fact that many resources are available on the web discussing these new standards, why do we need to read this book?
Here it is our feedback for C++ developers interested in mastering the new standards.
1- The book explains clearly the motivations behind the standards.
Many resources talk about how to use the new C++ features, how to declare them syntactically. But just few of them discuss the motivations behind the standards.
Scott Meyers provides us with concise explanations in order to understand clearly; Why a new feature is important and how does it make a big difference compared to C++98. Mastering the motivations behind the new features is what makes you more effective when you use them.
2- It shows the relationship of each feature to another.
A language is like a puzzle, you have many pieces. Therefore, to see the whole picture you have to assemble all of them.
Many resources talk about the new features separately, and in general they not show the relationship of each feature to another. At the end, we learn N standalone features, which do not help us combine them in our code.
Scott Meyers tries to assemble these features in order to give us the whole picture, for example the chapter 1 talks about “Deducing Types”. Whereas the second one talks about “auto” which has a close relationship with how the types are deduced.
3- It provides some basic and pragmatic rules to modernize your C++ code base.
Reading a book which enumerates all the new features, and how to syntactically use them is boring. However, the book that gives you a pragmatic usage of many features with some basic rules, this makes the book more interesting.
Scott Meyers’s book provides us with some useful rules to move easily to modern C++. At the end, you can modernize your C++ code base without doing big changes.
Many interesting rules about the Move Semantics, Lambda Expressions and the Concurrency API have been discussed.
4- Samples are very easy to understand.
As developers, we learn more by reading code samples. When we search for samples about the new C++ features, we find more complicated code, understood only by experts. As a result, we give up after few minutes of doing research.
Scott Meyers shows the new features with basic samples; even a C++ beginner could understand them.
5- Smart pointers demystified.
Memory management was for many years one of the darkest sides of C++. Many years ago the use of smart pointers was promoted by the C++ experts.
For C++ developers who haven’t mastered the smart pointers yet, this book is perfect to understand when and how to use the entire smart pointers variant (unique, weak or shared).
Finally, this book is really effective; it explains the motivations behind the new features and helps you understand the whole picture about the new standards. Beginner or even expert C++ developers will find it very useful.