And the Winners are: The C++ Memory Model/Das C++ Speichermodell
That is easy. Both of you, the German and the English reader prefer the same pdf bundle: The C+ Memory Modell/ Das C++ Speichermodell.
This author has not written his bio yet.
But we are proud to say that Rainer Grimm contributed 689 entries already.
That is easy. Both of you, the German and the English reader prefer the same pdf bundle: The C+ Memory Modell/ Das C++ Speichermodell.
I wrote a few posts about using concepts. Concepts are a named set of requirements. Let’s define a few concepts in this post.
The unification of templates, concepts, and placeholders goes on. This time, I will look closely at constrained (concepts) and unconstrained (auto) placeholders in the context of templates.
C++11 has auto unconstrained placeholders. You can use concepts in C++20 as constrained placeholders. What seems at first glimpse not so thrilling is for me the decisive quantum leap. C++ templates will become an easy to use C++ feature.
Task blocks use the well-known fork-join paradigm for the parallel execution of tasks.
Transactional memory is based on the idea of a transaction from the database theory. Transactional memory shall make the handling of threads a lot easier. That is for two reasons. Data races and deadlocks disappear. Transactions are composable.
I’m more than happy to say. I’m done with translating my more the 130 posts from http://www.grimm-jaud.de/index.php/blog to http://www.modernescpp.com/index.php. I started in April last year and it took me almost a year to translate my German posts into English. What does this mean for my German and my English blog?
I have written more than 130 posts on this blog. I covered the topics of multithreading, embedded, and functional programming in modern C++. I think a lot of my posts are quite good. Even better than the books I have written. So I had an idea.
Coroutines are functions that can suspend and resume their execution while keeping their state. The evolution in C++20 goes one step further.
Latches and barriers are simple thread synchronization mechanisms, enabling some threads to wait until a counter becomes zero. We will, presumably in C++20, get latches and barriers in three variations: std::latch, std::barrier, and std::flex_barrier.