Rainer Grimm’s Books
Rainer Grimm has written and published numerous books to teach and empower people in the field of modern C++. Below you will find more information about each book, as well as a direct link to purchase the books from one of the retailers.
C++20 Get the Details
C++20 is the next big C++ standard after C++11. As C++11 did, C++20 changes the way we program modern C++. This change is, in particular, due to the big four of C++20: ranges, coroutines, concepts, and modules.
Read more ...
The book C++20 is both: a tutorial and a reference for the C++20 standard. It teaches you C++20 and provides you with the details of this new thrilling C++ standard. The thrilling factor is mainly due to the big four of C++20.
- Concepts change the way we think and program templates. They are semantic categories for the template parameters and enable you to express your intention directly in the type system. If something goes wrong, you get a clear error message.
- The new ranges library enables it to perform algorithms directly on the container, compose the algorithm with the pipe symbol, and apply them to infinite data streams.
- Thanks to coroutines, asynchronous programming in C++ becomes mainstream. Coroutines are the base for cooperative tasks, event loops, infinite data streams, or pipelines.
- Modules overcome the restrictions of header files. They promise a lot. For example, the separation of header and source files becomes as obsolete as the preprocessor. In the end, we have faster built time and an easier way to build packages.
Get more information here: C++: Get the Details
The C++20 Standard Library
With the current C++20 standard, C++ offers numerous libraries. The main goal of this book is to provide you with the necessary information about all standard C++ libraries in a compact form.
Read more ...
The goal of The C++ Standard Library is to provide a concise yet comprehensive reference to the C++ standard library in approximately 300 pages. The book assumes that readers already have a solid understanding of C++. With this background, you will gain the greatest benefit from the material presented.
If C++ is new to you, it is recommended that you begin with a textbook covering the core language. Once you have mastered the fundamentals of C++, this book will help you take the next major step by deepening your understanding of the standard library.
In addition, the book includes more than 100 fully working code examples that expand on the code snippets presented by Rainer Grimm. These examples allow you to directly connect theory with practice, enabling a deeper and more effective learning experience.
Get more information here: The C++ Standard Library
C++ Core Guidelines: Best Practices for Modern C++
The official C++ Core Guidelines provide consistent best practices for writing outstanding modern C++ code, but they aren’t organized for easy usage by working developers.
Read more ...
“We are very pleased to see Rainer Grimm applying his teaching skills and industrial background to tackling the hard and necessary task of making the C++ Core Guidelines accessible to more people.”
—Bjarne Stroustrup and Herb Sutter, co-editors, C++ Core Guidelines
Get more information here: C++ Core Guidelines: Best Practices for Modern C++
Concurrency with Modern C++
C++11 is the first C++ standard that deals with concurrency. The story goes on with C++17, C++20, and will continue with C++23.
Read more ...
This book provides a detailed overview of both current and upcoming concurrency features in C++. It covers the underlying theory as well as extensive practical applications.
C++11 and C++14 introduced the fundamental building blocks for writing concurrent and parallel programs. With C++17, the Standard Template Library (STL) was extended with parallel algorithms, allowing many standard algorithms to be executed sequentially, in parallel, or in a vectorized manner.
The evolution of concurrency in C++ continues. C++20 added major features such as coroutines, atomic smart pointers, semaphores, and latches and barriers. Looking ahead to C++23, further enhancements are anticipated, including executors, extended futures, transactional memory, and additional concurrency-related capabilities.
The book explains the details of concurrency in modern C++ and is complemented by nearly 200 fully working code examples. These examples allow readers to effectively combine theory with hands-on practice and gain a deeper understanding of the subject.
As concurrency is inherently complex, the book highlights common pitfalls and demonstrates proven techniques to avoid them.
Get more information here: Concurrency with Modern C++




