Verdict: Highly Recommended
This is an excellent book for those working on, or planning to work on scientific, mathematical, and engineering projects. With dataset sizes constantly increasing, using high-performance languages like C++ is inevitable. This book goes a long way in helping engineers use C++ to solve such problems.
This book is best suited for those with a prior understanding of C++ basics. Though the book starts with a few basic concepts, it rapidly dives deep into the core concepts that make C++ the powerful language that it is. The book covers the entire breadth of C++, starting with the basics, then introducing the concept of classes, and then goes on to introduce the concept of ‘Generic Programming’, which is the foundation of STLs, algorithms, and Meta Programming, which happen to be the subsequent chapters in the book.
But the book also covers in-depth relatively modern concepts in C++ like Functors, Lambda, and Variable templates. The book also touches on ‘Concepts’, a new language feature introduced in C++20. The examples and case studies used are all real-world and non-trivial. This helps the reader gain a good hold on the tools or concepts used. In short, this book, with chapters covering the language features from the most recent C++ standards, is ‘modern’ in every sense.
Even if you are an experienced C++ developer, there are topics in every chapter that can be of use. For example, the topics around Concepts, Coroutines, and Variable Templates have all been extremely useful to me and helped me refactor some of the more recent code that I have been writing.