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.
My 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++20: Get the Details
The C++ Standard Library
With the current C++20 standard, C++ has many libraries to offer. My book’s key idea is to give you the necessary information to all the standard C++ libraries in a concise way
The goal of The C++ Standard Library is to provide you a concise reference of the C++ standard library in about 300 pages. his book assumes that you are familiar with C++. If so, you will get the most benefit from this book. If C++ is new to you, you should start with a textbook about core C++. Once you have mastered a textbook about the core language, you can make your next big step by reading my book.
This book has, also, more than 100 running code examples to the code snippets I presented in the book. Therefore you can combine the theory with the practices and get the most of it.
Get more information here: The C++ Standard Library
C++ Core Guidelines: Best Practices for Modern C++
Write More Elegant C++ Programs and Improve Legacy Code
“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
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. In C++ Core Guidelines Explained, expert C++ instructor Rainer Grimm has distilled them to their essence, removing esoterica, sharing new insights and context, and presenting well-tested examples from his own training courses.
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.
I’ll give you a detailed insight into the current and the upcoming concurrency in C++. This insight includes the theory and a lot of practice.
- C++11 and C++14 have the basic building blocks for creating concurrent or parallel programs.
- With C++17, we got the parallel algorithms of the Standard Template Library (STL). That means, most of the algorithms of the STL can be executed sequential, parallel, or vectorized.
- The concurrency story in C++ goes on. With C++20, we got coroutines, atomic smart pointers, semaphores, and latches and barriers.
- With C++23, we can hope for executors, extended futures, transactional memory, and more.
This book explains the details of concurrency in modern C++ and gives you, also, nearly 200 running code examples. Therefore, you can combine the theory with the practices and get the most of it.
Because this book is about concurrency, I present many pitfalls and show you how to overcome them.
Get more information here: Concurrency with Modern C++