
Introduction
Jelle was kind to give me a free copy of the book for review, I'd first thank him for the work he did on it. It's really great to see such work for C++ practionners.
Concepts and organization of the book
The book contains cases which seem inspired by real use cases seen by the author. Many of those cases, especially in the jthread timing part, points to non-trivial bug caused by misuse or abuse of a specific C++ container. The first case, is a good example of this concept explained in the book.
When it's not RAII, it's Timing-related issues!
Aside from RAII and destructor lessons given by the book, it also teaches us that crashes may happen due to what the author refers to as 'timing', Which seems to be applicable in examples containing network delays, CPU ticks.
The book is overall really interactive, you have to think about it when you work towards the problems. Which is a good sign that the book fullfills its purpose.
More details related to the book structure
The inclusion of Godbolt links, alongside quotes from Jason Turner (C++ Best Practices) grounds the book in references and citation track that is hard to argue against. Which I personally expect to see in a book.
Conclusions regarding the book
I would recommend the book if this wasn't clear already for people who can spend some euros for it. It would a harder sell if you have more experience in those areas but I'd argue to find a promo code to at least have a look into the book. I really liked also how the book uses really 'Modern C++'* in order to ground its examples in recent committee work.
Anyhow, that's all. Thank you Jelle for this!
What I would have love to see
First a reference's list to read other sources I might need to have in hand. Like how one may read a topology book full of exercises, it may point to Munkres for you to get the theory. Then lastly, in the first pages a list of people the author' is grateful for, would be a good addition as well.
References
- [1] Modern C++ is quite a disputed concept, agreed to start on C++11, we don't really know what it refers to however.